扩展python日志模块

时间:2013-10-30 10:40:08

标签: python python-2.7

我想扩展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) - 由于我正在扩展Logger本身而无法使用,而且我知道静态方法在python中不常用例如,他们是在Java中?

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

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

1 个答案:

答案 0 :(得分:0)

似乎我的方法完全错了。

我更喜欢way中陈述的python.org

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

配置文件的加载方式如下:

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

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