日志 logging模块
一.logging模块简介
logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径等;
与print相比,具备如下优点:
1. 可以通过设置不同的日志等级,只输出重要信息,而不必显示大量的调试信息;
2. print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据;logging则可以由开发者
决定将信息输出到什么地方,以及怎么输出;
二.logging模块的基本使用
1.logging有五个级别
logging.debug('this is debug message') logging.info('this is info message') logging.warning('this is warning message') logging.error('this is error message') logging.critical('this is critical message')
控制台输出日志
默认的日志格式为:日志级别:Logger名称:用户输出信息
日志默认级别为WARBING
2.配置日志级别,日志格式,输出的位置
1 import logging 2 logging.basicConfig(level=logging.INFO, #只能控制一个文件 3 format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', 4 datefmt='%a, %d %b %Y %H:%M:%S', 5 filename='test.log', 6 filemode='w') 7 logger = logging.getLogger('tang') 8 9 logging.debug('this is debug message') 10 logging.info('this is info message') 11 logging.warning('this is warning message') 12 logging.error('this is error message') 13 logging.critical('this is critical message')
fifilename: 用指定的文件名创建FiledHandler(后边会具体讲解handler的概念),这样日志会被存储在指
定的文件中。
fifilemode: 文件打开方式,在指定了fifilename时使用这个参数,默认值为“a”还可指定为“w”。
format: 指定handler使用的日志显示格式。
datefmt: 指定日期时间格式。
level: 设置rootlogger(后边会讲解具体概念)的日志级别
stream: 用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件,默认为
sys.stderr。
文件里输出日志
3.Handler 流
logger = logging.getLogger() #初始化对象方法
logger.error('nihao')
#控制信息的输出位置 流 想多个位置就创建多个
d=logging.FileHandler('文件的路径.log')
e=logging.FileHandler('oh.log')
f=logging.StreamHandler()
#把他们加进去
logger.addHandler(d)
logger.addHandler(e)
logger.addHandler(f)
Handler对象负责发送相关的信息到指定目的地,有几个常用的Handler方法:
Handler.setLevel(lel): 指定日志级别,低于lel级别的日志将被忽略
Handler.setFormatter(): 给这个handler选择一个Formatter
Handler.addFilter(fifilt)、Handler.removeFilter(fifilt):新增或删除一个fifilter对象
作者:小汤o