0
我有以下的python日誌配置文件:配置日誌記錄級別在python
[loggers]
keys=root
[logger_root]
handlers=screen,file
[formatters]
keys=simple,complex
[formatter_simple]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
[formatter_complex]
format=[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s
[handlers]
keys=file,screen
[handler_file]
class=handlers.TimedRotatingFileHandler
interval=midnight
backupCount=5
formatter=complex
level=DEBUG
args=('spartacus.log',)
[handler_screen]
class=StreamHandler
formatter=complex
level=DEBUG
args=(sys.stdout,)
運行下面的Python程序:
import logging.config
logging.config.fileConfig("logging.conf")
logging.debug("1")
logging.info("2")
logging.warn("3")
logging.error("4")
logging.critical("5")
輸出是:
[2014-04-01 11:25:04,720] WARNING [root.<module>:11] 3
[2014-04-01 11:25:04,720] ERROR [root.<module>:12] 4
[2014-04-01 11:25:04,720] CRITICAL [root.<module>:13] 5
哪裏是我的INFO和DEBUG級別的日誌條目?
你能解釋一下嗎?爲什麼文件處理程序的級別沒有任何影響? –
根記錄器指定由子記錄器繼承的基本日誌記錄級別,並且*可以*被處理程序覆蓋;但只有在該級別高於與其關聯的記錄器時,纔會生效。因此,例如,如果根級別是DEBUG,但屏幕處理程序的級別設置爲WARN,則只能在控制檯上看到WARN或更高的消息。 – spinlok