python之logging模块
一、logging模块
闲来无事,觉得logging模块比较有意思,就大概整理一下
二、logging模块的构成
logging模块,进去会看到三个包:init 文件,config,handler
handler就是预先定义了一些强大的handler,如果想要弄一些变化的Handler可以看看这一部分:
RotatingHandler(文件轮训,文件达到指定大小可以更换文件)
TimeRoatingFileHandler(时间文件轮训,估计是基于时间的)
。。。。。
config基本都是处理配置的,我们就是简单使用,直接简单看看init文件就够了,如果想看看配置是如何工作的,可以详细查看
三、logging模块的简单剖析:
1、一些错误的级别和对应的数字,以及一些关于日志等级的方法
2、logger里面重要的类:
Logger日志对象,代表日志记录的一个频道
# 创建一个logger,可以使用getLogger方法, loggger1 = logging.getLogger('testlogger1') loggger1.setLevel(logging.WARNING) # 直接将Logger类实例化也可以,可以直接指定level的级别 logger2 = logging.Logger('testlogger2',level=logging.INFO)
Filter:过滤器,过滤相关的数据,看是否要记录
Handler:分发器,日志相关的处理类日志事件的分发
Formatter格式类,控制日志输出的样式
四、logging的配置
1、简易配置,默认的Logger对象root
2、代码配置
3、文件配置
五、logging模块的使用:
1、简易使用
#!/usr/bin/env python # -*- coding: utf8 -*- # __Author: "Skiler Hao" # date: 2017/5/15 20:07import logging # logging的简易使用,就是使用basicConfig,就是使用root Logger()不用大家声明,可以携带以下参数 # filename 默认为StreamHandler,就是将日志内容输出到屏幕,指定file就是FileHandler,将内容输出到文件中 # filemode 打开文件的模式,默认为a,追加 # format 不使用默认的内容输出格式,使用指定的Formatter # datefmt 指定日志的时间格式 # style 指定格式化字符是啥,默认是%,介个一般不指定,就用默认 # level 记录日志的等级 # stream 代替默认的StreamHandler,使用指定的StreamHandler,注意:指定了文件Handler,stream指定就会失效 # handlers 给root Logger() 绑定多个handler对象,必须预先定义handler logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', datefmt='%a, %d %b %Y %H:%M:%S', filename='test.log', filemode='w') logging.debug('debug message') logging.info('info message') logging.warning('warning message') logging.error('error message') logging.critical('critical message')
人,从刚出生来到这个世界,便开始探索这个世界。累了就歇会,精神了就继续探索,直至死亡。