Eug*_*e S 5 python logging jython
我发现这个答案,但一个看似类似的问题,(因为我是新手到Python)的我不知道如何实现我的这个代码的解决方案(如果是同样的问题,毕竟).
在我的代码中,我有以下部分:
logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
                    filename='C:\\Tests\\TRACE.log',
                    filemode='a')
console = logging.StreamHandler()
console.setLevel(logging.INFO)
consoleFormatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
console.setFormatter(consoleFormatter)
logging.getLogger('').addHandler(console)
localLog = logging.getLogger('text')
Run Code Online (Sandbox Code Playgroud)
有趣的是,它过去工作正常,但在某些时候它开始将这些重复的消息写入控制台.
请问有人给我指点吗?
通常会出现重复的日志语句,因为附加了两个单独的处理程序,它们将您的日志语句指向同一位置.有一些值得尝试解决问题根源的事情:
为了使您的日志记录更易于管理,可能值得将配置移出代码并进入配置文件 - 有关日志记录配置的Python文档是一个很好的起点.
似乎我已经找到了这个问题的根源.
问题是我曾经在模块级别获取记录器.它看起来很合理,但存在一个缺陷 - 在从文件加载配置之前,Python日志记录模块会尊重所有创建的记录器.所以基本上,当我导入一个模块(内部使用获取记录器)到主代码(我也在那里调用记录器)时,它导致两次记录器数据流式传输.
这个问题的可能解决方案是:
disable_existing_loggers于假.自Python 2.7起添加|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           4768 次  |  
        
|   最近记录:  |