关于python-logging模块的学习,慢慢完善。
logging配置文件的使用
配置文件的格式和解释如下,使用的时候不能带#注释
配置文件log.conf
python
# 定义记录器,root是父类,必需存在的,其它的是自定义。
[loggers]
keys=root,infoLogger,errorLogger
# 定义处理器
[handlers]
keys=sh,fh1,fh2 #keys表示处理器的名称
# 定义格式化器
[formatters]
keys=fmt # 格式化器的名称
# 首先定义好需要的对象名称,现在再来配置各种对象
# 定义具体的logger信息
[logger_root] # 定义具体的logger,格式都是logger+上面loggers中的key
level=DEBUG # 设置日志级别
handlers=sh,fh1 # 绑定handlers,显然,这可以是多个
[logger_infoLogger]
level=INFO
handlers=fh1
qualname=infoLogger # qualname:定义logger对象是需要绑定的日志策略名字,不能省略,一般向上保持一致即可
[logger_errorLogger]
level=ERROR
handlers=fh2
qualname=errorLogger
# 接下来定义handler的具体细节
[handler_sh] # handler+上面handlers中的key
class=StreamHandler # class表示使用哪个类创建,常用的有StreamHandler/FileHandler
args=(sys.stdout,) # 创建StreamHandler的参数
level=WARNING # 设置日志级别,logger中也设置了的话,就取交集
formatter=fmt # 绑定格式化器
[handler_fh1]
class=FileHandler
args=('info.log','a','utf-8')
formatter=fmt
[handler_fh2]
class=FileHandler
args=('error.log','w','utf-8')
formatter=fmt
# 最后,再来定义格式化器
[formatter_fmt]
format=%(asctime)s|%(levelname)-5s|%(message)s
datefmt=%m-%d %H:%M:%S
使用配置文件
python
import logging
import logging.config
logging.config.fileConfig('logging.conf')
root_logger=logging.getLogger()
info_logger=logging.getLogger('infoLogger')
error_logger=logging.getLogger('errorLogger')