gpt4 book ai didi

python - 为什么非根记录器不将任何日志写入日志文件?

转载 作者:太空宇宙 更新时间:2023-11-04 01:09:08 27 4
gpt4 key购买 nike

我想通过使用带有以下 .ini 配置文件的两个记录器写入两个日志文件:

[loggers]
keys=root,teja

[handlers]
keys=fileHandler,tejaFileHandler

[formatters]
keys=simpleFormatter

[logger_teja]
level=DEBUG
handlers=tejaFileHandler
qualname='tejaLogger'


[logger_root]
level=DEBUG
handlers=fileHandler

[handler_fileHandler]
class=logging.FileHandler
level=DEBUG
formatter=simpleFormatter
args=("error.log", "a")

[handler_tejaFileHandler]
class=logging.FileHandler
level=DEBUG
formatter=simpleFormatter
args=("teja.log", "a")

[formatter_simpleFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s

我在我的 python 代码中使用这个配置作为

import logging
import logging.config
# load my module

import my_module

# load the logging configuration

logging.config.fileConfig('logging.ini')

logger1=logging.getLogger('root')
logger1.info('Hi how are you?')

logger2=logging.getLogger('teja')
logger2.debug('checking teja logger?')

我看到日志被写入 error.log 文件,而没有日志被写入 teja.log 文件。如果我做了一些愚蠢的事情,请纠正我......

最佳答案

您将记录器对象命名为 'tejaLogger':

[logger_teja]
level=DEBUG
handlers=tejaFileHandler
qualname='tejaLogger'
# ^^^^^^^^^^^^

请注意,引号是名称的一部分

但是您的测试代码选择了 teja:

logger2=logging.getLogger('teja')

重命名一个或另一个;虽然你可以使用 logging.getLogger("'tejaLogger'") 您可能想删除引号和/或将记录器重命名为您期望的名称:

[logger_teja]
level=DEBUG
handlers=tejaFileHandler
qualname=teja

关于python - 为什么非根记录器不将任何日志写入日志文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28762596/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com