日志 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

posted @ 2020-06-23 18:38  小汤o  阅读(165)  评论(0编辑  收藏  举报