Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 带有格式和控制台打印的TimedRotatingFileHandler_Python 2.7_Logging - Fatal编程技术网

Python 2.7 带有格式和控制台打印的TimedRotatingFileHandler

Python 2.7 带有格式和控制台打印的TimedRotatingFileHandler,python-2.7,logging,Python 2.7,Logging,我喜欢TimedRotatingFileHandler,我想使用它 但是,我当前的日志记录符合我的喜好,包括一些格式,以及控制台中的日志记录,如下所示: logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(levelname)-8s %(message)s', datefmt=dtfmt, filenam

我喜欢TimedRotatingFileHandler,我想使用它

但是,我当前的日志记录符合我的喜好,包括一些格式,以及控制台中的日志记录,如下所示:

logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s %(levelname)-8s %(message)s',
                    datefmt=dtfmt,
                    filename=logfile,
                    filemode='w')
console = logging.StreamHandler()
console.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s %(levelname)-8s %(message)s',
                              datefmt='%m-%d %H:%M')
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)

logger = logging.getLogger('logger') 

logger.info('log something')
这会在日志文件中返回如下内容:

2015-08-14 22:55:35信息日志

在控制台中:

08-14 22:56信息日志


我如何做到这一点,但还要让日志文件每午夜旋转一次?

这是一个老问题,但由于这是在谷歌上搜索结果时,我想做同样的事情,我会添加我的结果

本质上,您不应该使用basicConfig。手动添加两个处理程序

import logging, logging.handlers

#get the root logger
rootlogger = logging.getLogger()
#set overall level to debug, default is warning for root logger
rootlogger.setLevel(logging.DEBUG)

#setup logging to file, rotating at midnight
filelog = logging.handlers.TimedRotatingFileHandler('./mylogfile.log',
                   when='midnight', interval=1)
filelog.setLevel(logging.DEBUG)
fileformatter = logging.Formatter('%(asctime)s %(levelname)-8s %(message)s')
filelog.setFormatter(fileformatter)
rootlogger.addHandler(filelog)

#setup logging to console
console = logging.StreamHandler()
console.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s %(levelname)-8s %(message)s',
                          datefmt='%m-%d %H:%M')
console.setFormatter(formatter)
rootlogger.addHandler(console)

#get a logger for my script
logger = logging.getLogger(__name__)

logger.info('This is logged to console and file')
logger.debug('This is only logged to file')

谢谢你费心回答。不过我没有时间验证你的解决方案。干杯