0

我想扩展 python(2.7) 的日志记录模块(特别是记录器类)。

目前我有:

class MyLogger(logging.Logger):

    def __init__(self, name):
        logging.Logger.__init__(self, name)
  1. 这是初始化 MyLogger 的正确方法吗?

  2. 我可以使用 Logger.manager (logging.Logger.manager) 吗?

  3. 是否有可能“获取”一个记录器(我只知道 logging.getLogger(name) - 这是不可用的,因为我正在扩展记录器本身,而且我知道静态方法在 python 中并不流行,因为它们在 Java 中,例如)?

  4. 我在哪里可以了解有关扩展课程的更多信息?python.org中的文档很差,对我没有帮助。

我的目标是能够根据调用者模块的名称使用标准配置和处理程序启动记录器,并通过简短、可读的调用将整个系统记录器设置为同一级别。

4

1 回答 1

0

似乎我的方法完全错误。

我更喜欢python.org中所述的方式

使用配置文件清理代码并允许轻松传播更改。

像这样加载配置文件:

# view example on python.org site (logging for multiple modules)
logging.config.fileConfig('logging.conf')

至于批处理功能,由于我们保留 logging.Logger.manager.loggerDict 和 logging.getLogger,批处理操作可以使用简单的循环在整个系统中创建更改(例如将记录器设置为单个级别)。

于 2013-10-30T10:58:05.050 回答