更好的整个包装日志系统

时间:2014-07-24 07:56:03

标签: python logging package

我有一个大包(由二十几个模块组成),我将它们都记录到一个文件中。

我一直在创建一个Python“logging”模块对象,只是将对象传递给不同的实例和方法。

是否有更好的方法可以在包的多个模块中使用单个记录器?

谢谢!

----- ADDENDUM -----

创建一个包含logger对象的根类是否有用/ pythonic,并且只从该类继承每个类对象?

它可以解决类的问题,但不一定是从非类模块导入的独立方法......

1 个答案:

答案 0 :(得分:1)

如果你真的只需要一个记录器,那么你也可以使用root记录器。而不是绕过你的记录器,只需从每个模块中的记录模块中获取它:

import logging
logger = logging.getLogger()
logger.debug('Heya')

但是,常见的推荐模式是使用命名记录器,将第二行替换为:

logger = logging.getLogger(__name__)

这使门保持打开状态,以便以后轻松更改日志记录配置,以将某些日志定向到其他位置或更改其日志记录级别等。