我有一个Python应用程序,它使用动态发现的插件来扩展it功能。我正试图找出从插件中记录信息的最佳方式。我认为至少有两种解决办法。要么我创建一个记录器的层次结构:
myapp
myapp.plugin1
myapp.plugin2
使用基本应用程序:
^{pr2}$把插头拔掉
logger = logging.getLogger('myapp.plugin1')
logger.debug('mymessage from plugin1')
或者我使用默认记录器中的extra
参数添加其他信息:
在基本应用程序内:
logger = logging.getLogger('myapp')
logger.debug('mymessage', extra=dict(plugin=None)
插件1内
logger = logging.getLogger('myapp')
logger.debug('mymessage from plugin1', extra=dict(plugin='plugin1')
这两个方案有什么优点或缺点(如果有的话)?在
Python世界中的最佳实践是,每个Python模块都声明自己的记录器。在每个文件的开头,你有:
然后,您将Python模块放在一个很好的层次结构中,这样您就可以使用点式包名查找来分层地增加或减少包日志记录级别。一些例子:
^{pr2}$相关问题 更多 >
编程相关推荐