繁体   English   中英

使用Python日志记录添加自定义处理程序

[英]add custom handler with Python logging

我几乎整天都在努力,无法弄清我的缺失。 我试图添加一个自定义处理程序以将所有日志数据发送到GUI会话中。 它可以工作,但是处理程序不会扩展到子模块,而只是从主模块发出记录。 这是我尝试过的一个小片段

我有两个档案

# main.py
import logging

import logging_two

def myapp():
    logger = logging.getLogger('myapp')
    logging.basicConfig()
    logger.info('Using myapp')
    ch = logging.StreamHandler()
    logger.addHandler(ch)
    logging_two.testme()
    print logger.handlers

myapp()

第二模块

#logging_two
import logging

def testme():
    logger = logging.getLogger('testme')
    logger.info('IN test me')
    print logger.handlers

我希望logging_two.testme中的logger具有在主模块中添加的处理程序。 我向我看了看文档,看来应该可以,但是我不确定是否弄错了吗?

我得到的结果是

[]
[<logging.StreamHandler object at 0x00000000024ED240>]

myapp()您将处理程序添加到名为'myapp'的记录器中。 由于testme()正在获取名为'testme'的记录器,因此它没有处理程序,因为它是记录层次结构的不同部分。

如果您在myapp()仅包含logger = logger.getLogger() ,那么它将起作用,因为您将处理程序添加到层次结构的根目录中。

查看python日志记录文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM