在python日志记录中使用dictConfig,需要创建一个不同于在dict中定义的文件的记录器.

在python日志记录中使用dictConfig,需要创建一个不同于在dict中定义的文件的记录器.,第1张

概述我有一个LOG_SETTINGS dict,如下所示: LOG_SETTINGS = {'version': 1,'handlers': { 'console': { 'class': 'logging.StreamHandler', 'level': 'INFO', 'formatter': 'detailed', 's 我有一个LOG_SETTINGS dict,如下所示:
LOG_SETTINGS = {'version': 1,'handlers': {    'console': {        'class': 'logging.StreamHandler','level': 'INFO','formatter': 'detailed','stream': 'ext://sys.stdout',},'file': {        'class': 'logging.handlers.RotatingfileHandler','filename': '/tmp/junk.log','mode': 'a','maxBytes': 10485760,'backupCount': 5,'formatters': {    'detailed': {        'format': '%(asctime)s %(module)-17s line:%(lineno)-4d ' \        '%(levelname)-8s %(message)s','email': {        'format': 'Timestamp: %(asctime)s\nModule: %(module)s\n' \        'line: %(lineno)d\nMessage: %(message)s','loggers': {    'extensive': {        'level':'DEBUG','handlers': ['file',]        },}}

在我的代码中,我执行以下 *** 作:

logging.config.dictConfig(LOG_SETTINGS)logger = logging.getLogger('extensive')logger.info("This is from Runner {0}".format(self.default_name))logger2 = logging.getLogger('extensive')logfile = logging.fileHandler("test.log")logger2.addHandler(logfile)logger2.info("This is from Runner {0} to the new   file.".format(self.default_name))

但输出仍然写入LOG_SETTINGS中定义的原始日志文件.我正在寻找的是有能力说:logger2.replaceHandler(logfile)而不是addHandler.

有没有办法做到这一点?

解决方法 首先,清空记录器处理程序logger.handlers = []然后添加另一个处理程序.
logger2 = logging.getLogger('extensive')logfile = logging.fileHandler("test.log")logger2.handlers = []logger2.addHandler(logfile)
总结

以上是内存溢出为你收集整理的在python日志记录中使用dictConfig,需要创建一个不同于在dict中定义的文件的记录器.全部内容,希望文章能够帮你解决在python日志记录中使用dictConfig,需要创建一个不同于在dict中定义的文件的记录器.所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1207518.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存