鍍金池/ 問答/Python  網(wǎng)絡(luò)安全/ 一個.py腳本利用logging同時輸出兩個log文件

一個.py腳本利用logging同時輸出兩個log文件

問題描述

一個.py腳本利用logging同時輸出兩個log文件,
通過兩個不同的配置文件,可以生成兩個log文件,
但是只有后一個log對象可以寫進(jìn)內(nèi)容,前一個log對象無法寫入內(nèi)容

問題出現(xiàn)的環(huán)境背景及自己嘗試過哪些方法

不知道什么原因,懷疑跟handlers類型有關(guān)?

相關(guān)代碼

// 請把代碼文本粘貼到下方(請勿用圖片代替代碼)
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

你期待的結(jié)果是什么?實際看到的錯誤信息又是什么?

題目描述

期望:log信息同時寫入trace.log、wacaudit_console0.csv這兩個log文件
實際:這兩個log文件可同時生成,可log信息只寫進(jìn)wacaudit_console0.csv,卻沒有寫進(jìn)trace.log
結(jié)果:
cat trace.log
cat wacaudit_console0.csv
test2 log msg: 222222222222222222222

問題出現(xiàn)的環(huán)境背景及自己嘗試過哪些方法

將test.py當(dāng)中的
logger1 = get_logger('Glon', log_path1)
logger2 = get_logger('GlonHo', log_path2)
這兩句代碼互換位置,log信息可以寫進(jìn)trace.log,wacaudit_console0.csv也就沒有值寫進(jìn)去了。

回答
編輯回答
解夏

要實現(xiàn)一個腳本文件輸出兩個log的話,建議將上面的logging.conf跟audit.conf整合成一個配置文件

2017年8月23日 23:31
編輯回答
尐懶貓

配置那里改一下 加個變量 disable_existing_loggers

logging.config.fileConfig(logger_path,  disable_existing_loggers=False))

文檔 https://docs.python.org/2/lib...

2017年10月7日 13:34