Python新手。現在我一直困在這裏。當我嘗試使用ini
配置在文件中寫入日誌時,文件中不會捕獲任何內容。我試圖調試該問題,但無法得知任何線索。在不使用ini
文件的情況下編寫日誌非常好。登錄到文件的記錄器配置
下面是代碼和ini文件
import logging
from logging.config import fileConfig
def info(message):
fileConfig('logging_config.ini')
logger=logging.getLogger("simple logger")
logger.warning('Something is not right')
logger.warning(message)
logging_config.ini
[loggers]
keys=root
[handlers]
keys=file_handler
[logger_root]
level=WARNING
handlers=file_handler
[formatters]
keys=formatter
[formatter_formatter]
format='%(message)s'
[handler_file_handler]
class=FileHandler
level=WARNING
formatter=formatter
args=('dummyoutput.log','w')
我查了一下記錄器對象也能看到,如果我能得到它的屬性的任何線索。下面是對象
{'disabled': 0,
'filters': [],
'handlers': [<logging.FileHandler object at 0x7ff03358ce90>],
'level': 30,
'name': 'root',
'parent': None,
'propagate': 1}
不知道,樂於助人,但我注意到disabled
早些時候表示TRUE
的財產,但現在則是每次0
。
有沒有人對此有任何線索?
更新:該問題是由於對同一配置文件的logging.config.fileConfig()多次調用所致。但是我不明白爲什麼最後一次調用該函數時沒有寫入任何內容。任何想法呢?
哦,是的......你說得對。但與此同時它也不起作用。另外,我之前嘗試過的大多數時候都沒有給logger任何名字'logger = logging.getLogger()',但那也沒有奏效。不知道那裏出了什麼問題。 – qwerty
你能解釋一下哪些工作不正常(因爲我已經測試過了)。注意:你應該在配置INI中使用完整路徑。你有沒有找到你的日誌文件? –
日誌文件已被生成。你分享的代碼非常好。實際上,問題在於'info(message)'不止一次被調用,fileConfig()'也被調用了相同的配置文件,因爲它在info函數內* [請檢查我的答案以獲得詳細信息] *。但是我不明白爲什麼最後一次調用該函數時沒有寫入任何內容。任何想法呢? – qwerty