1. 程式人生 > >Python Logging模組-配置檔案說明

Python Logging模組-配置檔案說明

首先直接來看一個配置檔案

[loggers]
keys=root,simpleExample

[handlers]
keys=consoleHandler,fileHandler

[formatters]
keys=simpleFormatter

[logger_root]
level=DEBUG
handlers=fileHandler

[logger_simpleExample]
level=DEBUG
handlers=consoleHandler,fileHandler
qualname=simpleExample
propagate=0

[handler_consoleHandler]
class=StreamHandler level=WARNING formatter=simpleFormatter args=(sys.stdout,) [handler_fileHandler] class=FileHandler level=DEBUG formatter=simpleFormatter args=('test.log','a+') [formatter_simpleFormatter] format=%(asctime)s - %(name)s - %(levelname)s - %(message)s datefmt=

Logging模組的配置,其實就是配置上一篇所講的Logger,Handler,Formatter的過程。
[loggers],[handlers],[formatters] 這三項定義了logger,handler,formatter有哪些,下面分別以logger_xxx,handler_xxx,formatter_xxx來配置。
如[logger_simpleExample]這項

level=DEBUG
handlers=consoleHandler,fileHandler
qualname=simpleExample
propagate=0

設定級別為DEBUG,handler為consoleHandler,fileHandler,
其中consoleHandler,fileHandler的配置在下面[handler_consoleHandler]和[handler_fileHandler]
[handler_consoleHandler]的配置
class=StreamHandler
level=WARNING
formatter=simpleFormatter
args=(sys.stdout,)

設定了這個handler的型別是StreamHandler,級別是WARNING,意味著WARNING以上級別的日誌才會處理。
同時設定了formatter是simpleFormatter,輸出到螢幕上

在[formatter_simpleFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=
中設定了日誌的格式,類似於上一篇中basicConfig中的引數。
使用時使用

logging.config.fileConfig('logging.conf')

載入該配置

注意:一定要有root這個logger!不然會報錯