【问题标题】:importing python logging module settings导入python日志模块设置
【发布时间】:2014-01-27 14:08:47
【问题描述】:

我有一个使用日志记录模块的 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 的子模块加载日志记录模块并且所有日志记录设置对其应用程序的其余部分可用(修改是全局而不是本地的)是如何工作的?是否所有日志记录模块内容都以某种单例形式提供?

【问题讨论】:

    标签: python logging module


    【解决方案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 时被调用。 因此,当子模块修改或访问根 logger 时,它会影响或访问与第一次导入 logging 的模块相同的根 logger。

    【讨论】:

      猜你喜欢
      • 2018-04-26
      • 1970-01-01
      • 1970-01-01
      • 2016-05-21
      • 1970-01-01
      • 1970-01-01
      • 2020-01-04
      • 2020-03-18
      • 2015-02-25
      相关资源
      最近更新 更多