【问题标题】:using dictConfig in python logging, need to create a logger with a different file than defined in dict.在 python 日志记录中使用 dictConfig,需要使用与 dict 中定义的文件不同的文件创建记录器。
【发布时间】:2012-06-07 12:05:15
【问题描述】:

我有一个 LOG_SETTINGS 字典,看起来像:

LOG_SETTINGS = {
'version': 1,
'handlers': {
    'console': {
        'class': 'logging.StreamHandler',
        'level': 'INFO',
        'formatter': 'detailed',
        'stream': 'ext://sys.stdout',
    },
    'file': {
        'class': 'logging.handlers.RotatingFileHandler',
        'level': 'INFO',
        'formatter': 'detailed',
        'filename': '/tmp/junk.log',
        'mode': 'a',
        'maxBytes': 10485760,
        'backupCount': 5,
    },

},
'formatters': {
    'detailed': {
        'format': '%(asctime)s %(module)-17s line:%(lineno)-4d ' \
        '%(levelname)-8s %(message)s',
    },
    'email': {
        'format': 'Timestamp: %(asctime)s\nModule: %(module)s\n' \
        'Line: %(lineno)d\nMessage: %(message)s',
    },
},
'loggers': {
    'extensive': {
        'level':'DEBUG',
        'handlers': ['file',]
        },
}
}

在我的代码中,我执行以下操作:

logging.config.dictConfig(LOG_SETTINGS)

logger = logging.getLogger('extensive')
logger.info("This is from Runner {0}".format(self.default_name))

logger2 = logging.getLogger('extensive')
logfile = logging.FileHandler("test.log")
logger2.addHandler(logfile)

logger2.info("This is from Runner {0} to the new   file.".format(self.default_name))

但输出仍然写入 LOG_SETTINGS 中定义的原始日志文件。我正在寻找的是能够说:logger2.replaceHandler(logfile) 而不是 addHandler。

有没有办法做到这一点?

【问题讨论】:

    标签: python logging


    【解决方案1】:

    首先,清空您的记录器处理程序logger.handlers = [],然后添加另一个处理程序。

    logger2 = logging.getLogger('extensive')
    logfile = logging.FileHandler("test.log")
    logger2.handlers = []
    logger2.addHandler(logfile)
    

    【讨论】:

    • 谢谢。我发现的另一件事是removeHandler link,但我不确定“hdlr”是什么? .
    • 对于handler,它是一个日志处理程序对象。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    • 2011-10-21
    • 2017-06-04
    相关资源
    最近更新 更多