Python日志记录劫持子模块将日志记录到另一个文件(挂架)
我有一个挂架应用程序Python日志记录劫持子模块将日志记录到另一个文件(挂架),python,logging,pylons,Python,Logging,Pylons,我有一个挂架应用程序myapp,我需要将子模块myapp.lib.submodule中的所有日志消息写入另一个日志文件,并且不也写入主日志文件 这是我当前的ini文件,这样我可以在accesslog和submodulelog文件中获取子模块消息: ... # Logging configuration [loggers] keys = root, routes, myapp, sqlalchemy, submodule [handlers] keys = console, accesslog,
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]
....
您可以使用子模块记录器的propagate标志停止向祖先记录器传递消息,如下所示:
[logger_submodule]
level = INFO
handlers = submodulelog
qualname = myapp.lib.submodule
propagate=0