[英]Creating multiple loggers in Python to different outputs in the same module
所以我想在同一个模块中创建多个记录器
log = logging.getLogger('FirstLogger')
plog = logging.getLogger('SecondLogger')
我想分别配置每个记录器。
所以我为 plog 添加了一个 FileHandler,它只需要 logging.INFO 或更高版本,而用于 log 的 FileHandler 将需要 logging.DEBUG 或更高版本。
我创建了一个 init_logger() 函数,它接受记录器的实例来执行配置
def init_logger(logger, fmode, cmode)
所以我希望 FirstLogger 登录到我为它单独创建的文件并以调试级别登录。 我会做
log = logging.getLogger('FirstLogger')
init_logger(log,logging.DEBUG,logging.INFO)
plog = logging.getLogger('SecondLogger')
init_logger(plog,logging.INFO,logging.INFO)
在 init_logger 中,我为 FileHandler 指定了不同的文件,并根据传递给 init_logger 的内容设置级别。
flog = logging.FileHandler(logfile)
flog.setLevel(fmode)
flog.setFormatter(...)
console = logging.StreamHandler()
console.setLevel(cmode)
console.setFormatter(...)
log.addhandler(flog)
log.addHandler(console)
我遇到的问题是,即使 'log' 将控制台设置级别设置为 INFO 并将 FileHandler 设置为 DEBUG,我仍然只能在文件和控制台中获得 INFO。 我无法弄清楚我正在做的事情有什么问题。
您将文件处理程序的级别设置为 DEBUG,但未将记录器本身的级别设置为 DEBUG
log.setLevel(min(cmode, fmode))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.