(2022.04.21 Thur)
Logging提供的日志记录方式有两种,分别是
- 模块级别的函数
- 日志系统的四大组件
日志级别
logging日志分为五个级别,从低到高如下
- DEBUG: 详细信息,level=10
- INFO: 普通信息,确认程序如预期运行,level=20
- WARNING: 警告,表示程序可能发生意想不到的问题,但仍然可以正常运行,level=30
- ERROR: 错误信息,程序某些功能不能执行,level=40
- CRITICAL: 严重错误,程序无法继续执行,level=50
默认级别是WARNING。设置了日志级别之后,该级别和高于该级别的信息都可以保存/显示。
日志信息可输出到控制台console,也可输出到指定文件。
import logging
def logging_test():
logging.debug('this is a debug logging.')
logging.info('this is an info logging.')
logging.warning('this is a warning logging.')
logging.error('this is an error logging.')
logging.critical('this is a critical logging.')
return 'done'
调用
>>> logging_test()
WARNING:root:this is a warning logging.
ERROR:root:this is an error logging.
CRITICAL:root:this is a critical logging.
'done'
注意,对logging级别没有设置,所以默认是WARNING,仅显示WARNING, ERROR, CRITICAL三个信息。
日志设置
通过logging.basicConfig
可设置,比如
>>> logging.basicConfig(filename='logging_debut.log', level=logging.DEBUG)
可设置的选项包括
- filename: 保存成的log文件名
- level: 日志级别
- filemode: 如果制定了filename,则指定打开模式('w', 'r', 'a'),默认'a'
- format: 为处理程序使用指定格式的字符串
- datafmt: 使用time.strftime()所接受的指定日期/时间格式
- style: 如果指定了格式,则对格式字符串使用此样式,’%’ 用于 printf 样式、’{’ 用于 str.format()、’$’ 用于 string,默认为“%”
指定的格式包括:
- %(asctime)s: 日志发生的时间
- %(levelname)s: 日志级别
- %(message)s: 日志记录的文本内容
- %(name)s: 所使用的日志器名称,默认'root'
- %(pathname)s: 日志记录的函数的文件的全路径
- %(filename)s: 日志记录的函数的文件
- %(funcName)s: 日志记录的函数的函数名
- %(lineno)s: 日志记录的代码所在的行号
应用模块级别函数和设置信息生成日志
def test():
log_format = '%(asctime)s: %(levelname)s - %(message)s'
log_filename = 'logging_debut_fmt.log'
logging.basicConfig(filename= log_filename, level=logging.DEBUG, \
format=log_format)
logging.info('instanciate a class')
a = [1,2,3]
logging.debug('instance: '+str(a))
logging.warning('conduct addition')
b = [34,5,6]
logging.critical('b: '+str(b))
tmp = a+b
logging.info('results: '+str(tmp))
return 'done'
查看log文件,logging_debut_fmt.log
$ cat logging_debut_fmt.log
2022-04-21 12:09:26,061: INFO - instanciate a class
2022-04-21 12:09:26,062: DEBUG - instance: [1, 2, 3]
2022-04-21 12:09:26,062: WARNING - conduct addition
2022-04-21 12:09:26,062: CRITICAL - b: [34, 5, 6]
2022-04-21 12:09:26,062: INFO - results: [1, 2, 3, 34, 5, 6]
网友评论