导入python日志记录模块设置

时间:2014-01-27 14:08:48

标签: python logging module

我有一个使用日志记录模块的python服务器。到目前为止它只是:

logging.basicConfig(filename='server.log',level=logging.INFO,format='%(asctime)s\t%(levelname)s\t%(message)s')

现在我想为记录器添加一些处理程序。这大约是15行代码。我不想把它放在主server.py文件中,以使其保持最重要的服务器内容。问题是 - 在python中建议的方法是什么。

我已将我的日志处理程序定义移到另一个模块中并导入它:

import logdefs

但是从未使用过此导入(我从不使用logdefs.something)。这可以吗?另一个问题是 - 如何从server.py的子模块加载日志记录模块,并且所有日志记录设置都可用于其应用程序的其余部分(修改是全局的而不是本地的)?是否所有日志记录模块内容都可用作某种单例?

1 个答案:

答案 0 :(得分:1)

您可以致电

,而不是致电logging.basicConfig
logging.config.fileConfig(config_file)

并放置configuration in a file.


对于第二个问题,如果你看一下logging/__init__.py source code,你会看到

root = RootLogger(WARNING)
Logger.root = root
Logger.manager = Manager(Logger.root)

首次导入logging时会调用此代码。 因此,当子模块修改或访问根记录器时,它会影响或访问与首次导入logging的模块相同的根记录器。