前言
一个项目中,日志模块占有很重要的一部分,因为通过日志模块我们可以追踪异常错误的位置和详细信息,从而得到具体的错误提示,帮我们解决问题提供了很大的帮助,本篇内容主要介绍一下logging模块的主要四个概念,以及通过dictionary的形式去配置项目中的日志形式。
日志的四个器
- Logger记录器:暴露了应用程序代码能直接使用的接口
- Handler 处理器,将(记录器产生的)日志记录发送至合适的目的地。
- Filter 过滤器,提供了更好的粒度控制,它可以决定输出哪些日志记录。
- Formatter 格式化器,指明了最终输出中日志记录的布局。
所以我们都要去自己实现或者logging模块默认帮我们实现这几个类,才能构成完整的日志处理器。
dictConfig()
以下是项目中用到的日志配置,通过字典的方式,使用logging.config.dictConfig(LOGGING)实现日志的配置(实际调用的是DictConfigurator.configure(LOGGING))。
LOGGING = {
# 版本号,这个参数logging强制规定为1,否则会报错,主要是为了后续配置升级后提供兼容性
'version': 1,
# 日志格式化器,每一个键值对就是一种格式化方式
'formatters': {
'simple': {
'format': '[%(asctime)s] {%(filename)s %(lineno)d} %(levelname)s - %(message)s', # 格式化输出格式
'datefmt': '%Y-%m-%d %H:%M:%S' # 日期的输出格式,即上面的asctime格式化参数
}
},
# 日志输出处理器,每一个键值对就是一个输出处理类
'handlers':{
'fileHandler':{
'class'