【问题标题】:Python logging hijack sub-module logs to another file (Pylons)Python logging 劫持子模块日志到另一个文件(Pylons)
【发布时间】:2011-02-17 08:14:29
【问题描述】:

我有一个 pylons 应用程序 myapp,我需要将子模块 myapp.lib.submodule 中的所有日志消息写入不同的日志文件,也写入主日志文件。

这是我当前的 ini 文件,这样我可以在 accesslog 和 submodulelog 文件中获取子模块消息:

...
# Logging configuration
[loggers]
keys = root, routes, myapp, sqlalchemy, submodule

[handlers]
keys = console, accesslog, submodulelog

[formatters]
keys = generic

[logger_root]
level = INFO
handlers = accesslog

[logger_routes]
...

[logger_myapp]
level = INFO
handlers = accesslog
qualname = myapp.controllers

[logger_submodule]
level = INFO
handlers = submodulelog
qualname = myapp.lib.submodule

[logger_sqlalchemy]
....

[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic

[handler_accesslog]
class = handlers.TimedRotatingFileHandler
args = ('/tmp/myapp.log', 'midnight', 1, 30, 'utf-8')
level = INFO
formatter = generic

[handler_submodulelog]
class = handlers.TimedRotatingFileHandler
args = ('/tmp/submodule.log', 'midnight', 1, 30, 'utf-8')
level = INFO
formatter = generic

[formatter_generic]
....

【问题讨论】:

    标签: python logging pylons


    【解决方案1】:

    您可以使用子模块记录器的传播标志来停止将消息传递给祖先记录器,如下所示:

    [logger_submodule]                                                                                                                                           
    level = INFO                                                                                                                                                 
    handlers = submodulelog                                                                                                                                      
    qualname = myapp.lib.submodule                                                                                                                               
    propagate=0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-12
      • 1970-01-01
      • 2016-05-21
      • 1970-01-01
      • 1970-01-01
      • 2020-01-04
      相关资源
      最近更新 更多