Python logging 模块定义了为应用程序和库实现灵活的事件日志记录的函数和类。
程序开发过程中,很多程序都有记录日志的需求,并且日志包含的信息有正常的程序访问日志还可能有错误、警告等信息输出,Python 的 logging 模块提供了标准的日志接口,可以通过它存储各种格式的日志,日志记录提供了一组便利功能,用于简单的日志记录用法。
- 使用 Python Logging 模块的主要好处是所有 Python 模块都可以参与日志记录
- Logging 模块提供了大量具有灵活性的功能
日志记录函数以它们用来跟踪的事件的级别或严重性命名。下面描述了标准级别及其适用性(从高到低的顺序):
日志级别等级排序:critical > error > warning > info > debug
级别越高打印的日志越少,反之亦然,即
- debug : 打印全部的日志( notset 等同于 debug );通常仅在诊断问题时才受到关注;整数level = 10
- info : 打印 info, warning, error, critical 级别的日志;确认程序按照预期工作;整数level = 20
- warning : 打印 warning, error, critical 级别的日志;出现了异常,但是不影响正常工作;整数level = 30
- error : 打印 error, critical 级别的日志;由于某些原因,程序不能执行某些功能;整数level = 40
- critical : 打印 critical 级别;严重的错误,导致程序不能运行;整数level = 50
一、 Logging 模块日志记录方式
Logging 模块提供了两种日志记录方式:
- 一种方式是使用 Logging 提供的模块级别的函数
- 另一种方式是使用 Logging 日志系统的四大组件记录
1、Logging 定义的模块级别函数
日志打印:
import logging
# 打印日志级别
def test_logging():
logging.debug('Python debug')
logging.info('Python info')
logging.warning('Python warning')
logging.error('Python Error')
logging.critical('Python critical')
test_logging()
输出结果:
WARNING:root:Python warning
ERROR:root:Python Error
CRITICAL:root:Python critical
当指定一个日志级别之后,会记录大于或等于这个日志级别的日志信息,小于的将会被丢弃, 默认情况下日志打印只显示大于等于 WARNING 级别的日志。
1.1 设置日志显示级别
通过 logging.basicConfig() 可以设置 root 的日志级别,和日志输出格式。
注意:Logging.basicConfig() 需要在开头就设置,在中间设置并无作用
日志打印:
import logging
# 打印日志级别
def test():
logging.basicConfig(level=logging.DEBUG)
logging.debug('Python debug')
logging.info('Python info')
logging.warning('Python warning')
logging.error('Python Error')
logging.critical('Python critical')
logging.log(2,'test')
test()
输出结果:
DEBUG:root:Python debug
INFO:root:Python info
WARNING:root:Python warning
ERROR:root:Python Error
C