问题描述
一个.py脚本利用logging同时输出两个log文件,
通过两个不同的配置文件,可以生成两个log文件,
但是只有后一个log对象可以写进内容,前一个log对象无法写入内容
问题出现的环境背景及自己尝试过哪些方法
不知道什么原因,怀疑跟handlers类型有关?
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
test.py
#!/usr/bin/env python
# coding: utf-8
import logging.config
import logging
def get_logger(logger_name, logger_path):
logging.config.fileConfig(logger_path)
return logging.getLogger(logger_name)
if name == '__main__':
log_path1='logging.conf'
log_path2='audit.conf'
logger1 = get_logger('Glon', log_path1)
logger2 = get_logger('GlonHo', log_path2)
logger1.info(' test1 log msg: %s', "111111111111111111111")
logger2.info(' test2 log msg: %s', "222222222222222222222")
logging.conf
[loggers]
keys=root
[handlers]
keys=rotatingHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=INFO
handlers=rotatingHandler
[handler_rotatingHandler]
class=logging.handlers.TimedRotatingFileHandler
level=INFO
formatter=simpleFormatter
args=('trace.log', 'midnight')
[formatter_simpleFormatter]
format=%(asctime)s %(levelname)s %(message)s
datefmt=
audit.conf
[loggers]
keys=root
[handlers]
keys=rotatingHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=INFO
handlers=rotatingHandler
[handler_rotatingHandler]
class=logging.handlers.TimedRotatingFileHandler
level=INFO
formatter=simpleFormatter
args=('wacaudit_console0.csv', 'midnight')
[formatter_simpleFormatter]
format=%(message)s
你期待的结果是什么?实际看到的错误信息又是什么?
题目描述
期望:log信息同时写入trace.log、wacaudit_console0.csv这两个log文件
实际:这两个log文件可同时生成,可log信息只写进wacaudit_console0.csv,却没有写进trace.log
结果:
cat trace.log
cat wacaudit_console0.csv
test2 log msg: 222222222222222222222
问题出现的环境背景及自己尝试过哪些方法
将test.py当中的
logger1 = get_logger('Glon', log_path1)
logger2 = get_logger('GlonHo', log_path2)
这两句代码互换位置,log信息可以写进trace.log,wacaudit_console0.csv也就没有值写进去了。
要实现一个脚本文件输出两个log的话,建议将上面的logging.conf跟audit.conf整合成一个配置文件