Python 2.7 带有格式和控制台打印的TimedRotatingFileHandler
我喜欢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
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')
谢谢你费心回答。不过我没有时间验证你的解决方案。干杯