loggong模块提供模块级别的函数记录日志
日志
日志级别(level)
DEBUG
INFO
NOYICE
WARNING
ERROR
CRITICAL
ALTER
EMERGENCY
log的作用:
调试
了解软件运行情况
分析定位问题
日志信息:
时间
地点
level
内容
logging模块
日志级别可以自定义
DEBUG
INFO
NOYICE
WARNING
ERROR
CRITICAL
初始化写日志实例需要指定级别,只有当级别等于或高于指定级别才被‘记录
使用方式:
直接使用logging()封装了其它组件
logging四大组建直接定制
logging模块级别的日志
以下几个函数:
logging.debug(msg,*args,**kwargs)创建一条严重级别为debug的日志记录
logging.info(msg,*args,**kwargs)创建一条严重级别为info的日志记录
logging.warning(msg,*args,**kwargs)创建一条严重级别为warning的日志记录
logging.error(msg,*args,**kwargs)创建一条严重级别为error的日志记录
logging.critical(msg,*args,**kwargs)创建一条严重级别为critical的日志记录
logging.log(level,*args,**kwargs)创建一条严重级别为level的日志记录
logging.basicConfig(**kwargs)对root logger进行一次性配置
logging.basicConfig(**kwargs)
只在第一次调用的时候起作用
不配置则使用默认值
输出sys.stderr
级别warning
格式level:log_name:content
import logging
logging.basicConfig(filename='super.log',level=logging.DEBUG)
logging.debug('this is a debug')
logging.info('this is a info ')
logging.warning('this is a warning ')
logging.error('this is a error')
logging.critical('this is a critical')
#另一种写法
logging.log(logging.DEBUG,'DEBUG')
logging.log(logging.INFO,'INFO')
logging.log(logging.WARNING,'WARNING')
logging.log(logging.ERROR,'ERROR')
logging.log(logging.CRITICAL,'CRITICAL')
super.log文件内容
DEBUG:root:this is a debug
INFO:root:this is a info
WARNING:root:this is a warning
ERROR:root:this is a error
CRITICAL:root:this is a critical
DEBUG:root:DEBUG
INFO:root:INFO
WARNING:root:WARNING
ERROR:root:ERROR
CRITICAL:root:CRITICAL
import logging
LOG_FORMAT="%(asctime)s------%(levelname)s-------%(message)s"
logging.basicConfig(filename='super.log',level=logging.DEBUG,format=LOG_FORMAT)
logging.debug('this is a debug')
logging.info('this is a info ')
logging.warning('this is a warning ')
logging.error('this is a error')
logging.critical('this is a critical')
#另一种写法
logging.log(logging.DEBUG,'DEBUG')
logging.log(logging.INFO,'INFO')
logging.log(logging.WARNING,'WARNING')
logging.log(logging.ERROR,'ERROR')
logging.log(logging.CRITICAL,'CRITICAL')
super.log内容
018-12-14 14:28:34,180------DEBUG-------this is a debug
2018-12-14 14:28:34,180------INFO-------this is a info
2018-12-14 14:28:34,180------WARNING-------this is a warning
2018-12-14 14:28:34,180------ERROR-------this is a error
2018-12-14 14:28:34,180------CRITICAL-------this is a critical
2018-12-14 14:28:34,180------DEBUG-------DEBUG
2018-12-14 14:28:34,180------INFO-------INFO
2018-12-14 14:28:34,180------WARNING-------WARNING
2018-12-14 14:28:34,180------ERROR-------ERROR
2018-12-14 14:28:34,180------CRITICAL-------CRITICAL
logging模块的处理流程
日志四大组件
-日志器Logger:产生日志的一个接口
-处理器Handler:把产生的日志发送到相应的目的地
-过滤器Filter:更精细的控制日志输出
-格式器Formatter:对输出信息进行格式化
日志器Logger
Logger.setLevel()-设置日志器将会处理日志消息的最低严重级别
Logger.addHandler() 和 Logger.removeHandler()-为logger对象添加和移除一个处理器
Logger.addFilter()–为logger对象添加和移除一个过滤器
Logger.debug-产生一条debug级别的日志
Logger.exception()-创建类似于logger.error的日志消息
Logger.loge()-获取一个明确的日志level参数类创建一个日志记录
获取一个logger对象
logging.getLogger()
处理器Handler
方法
setLevel
setFormat
addFilter,removeFilter
不需要直接使用
logging.StreamHandler-将日志消息发送到输出到stream
logging.FileHandler-将日志消息发送到磁盘文件
logging.NullHandler-该handler实例会忽略error messages
logging.handlers.HTTPHandler-以get或post方式发送到一个http服务器
logging.handlers.SMTPHandler-发送到一个指定的email地址
logging.handlers.RotatingFileHandler-发送到磁盘文件,支持文件按大小切割
logging.handlers.TimedRotatingFileHandler-发送到磁盘文件,支持文件按时间切割
Format类
三个参数
fmt
datefmt
style
过滤器Filter
可以被handler和logger使用