首先直接来看一个配置文件
[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!不然会报错