Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python日志记录劫持子模块将日志记录到另一个文件(挂架)_Python_Logging_Pylons - Fatal编程技术网

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