【发布时间】:2019-08-17 13:37:30
【问题描述】:
我有以下代码来创建两个日志记录处理程序。目标是让stream_handler 只写入sterr,而file_handler 只写入文件。
在下面的代码中,stream_handler 也会写入文件,所以每当我记录一条消息时,我都会有重复的日志条目。如何修改它以使 stream_handler not 写入文件?
def create_timed_rotating_log(
name='log',
path='logs/',
when='D',
interval=1,
backupCount=30,
form='%(asctime)s | %(name)s | %(levelname)s: %(message)s',
sterr = False,
verbose=False):
logger = logging.getLogger(name)
formatter = logging.Formatter(form)
logger.setLevel(logging.DEBUG)
if sterr:
stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.DEBUG if verbose else logging.ERROR)
stream_handler.setFormatter(formatter)
logger.addHandler(stream_handler)
file_handler = TimedRotatingFileHandler(filename=path+name,
when=when,
interval=interval,
backupCount=backupCount)
file_handler.setFormatter(formatter)
file_handler.setLevel(logging.DEBUG if verbose else logging.ERROR)
logger.addHandler(file_handler)
return logger
【问题讨论】:
标签: python logging error-logging