logging - 模块
- 当为程序指定了一个日志级别后,程序会记录所有日志级别大于等于指定日志级别的日志信息,而不仅仅是记录指定界别的日志信息
- 一般建议只使用DEBUG、info、warning,error这四个级别
"""
步骤:
# 0. 导包
# 1. 创建日志器对象
# 2. 设置日志打印级别
# logging.DEBUG 调试级别
# logging.INFO 信息级别
# logging.WARNING 警告级别
# logging.ERROR 错误级别
# logging.CRITICAL 严重错误级别
# 3. 创建处理器对象
# 3.1 输出到控制台
# 3.2 输出到日志文件
# 4. 创建格式化器
# 5. 给处理器设置格式化器
# 6. 给日志器添加处理器
# 7. 打印日志
"""
import logging.handlers
import time
# 1. 创建日志器对象
logger = logging.getLogger()
# 2. 设置日志打印级别
# logging.DEBUG 调试级别
# logging.INFO 信息级别
# logging.WARNING 警告级别
# logging.ERROR 错误级别
# logging.CRITICAL 严重错误级别
logger.setLevel(logging.INFO)
# 3. 创建处理器对象
# 输出到控制台
st = logging.StreamHandler()
# 输出到日志文件
# when 是一个字符串,定义了日志切分的间隔时间单位
# interval 是间隔时间单位的个数,指等待多少个 when 的时间后继续进行日志记录
# backupCount 是保留日志的文件个数
fh = logging.handlers.TimedRotatingFileHandler('a.log',
when='midnight',
interval=1,
backupCount=3,
encoding='utf-8')
# 4. 创建格式化器
fmt = "%(asctime)s %(levelname)s [%(filename)s(%(funcName)s:%(lineno)d)] - %(message)s"
formatter = logging.Formatter(fmt)
# 5. 给处理器设置格式化器
st.setFormatter(formatter)
fh.setFormatter(formatter)
# 6. 给日志器添加处理器
logger.addHandler(st)
logger.addHandler(fh)
# logging.debug('我是一个调试级别的日志')
logging.info('我是一个信息级别的日志')
# logging.warning('我是一个警告级别的日志')
# logging.error('我是一个错误级别的日志')
# logging.critical('我是一个严重错误级别的日志')
time.sleep(1)
格式化器占位符:
| 占位符 | 描述 |
|---|---|
| %(name)s | Logger的名字 |
| %(levelname)s | 文本形式的日志级别 |
| %(pathname)s | 调用日志输出函数的模块的完整路径名,可能没有 |
| %(filename)s | 调用日志输出函数的模块的文件名 |
| %(module)s | 调用日志输出函数的模块名 |
| %(funcName)s | 调用日志输出函数的函数名 |
| %(lineno)d | 调用日志输出函数的语句所在的代码行 |
| %(asctime)s | 字符串形式的当前时间。默认格式是 “2021-11-11 16:49:45,896”。 |
| %(message)s | 用户输出的消息 |
本文来自博客园,作者:chuangzhou,转载请注明原文链接:https://www.cnblogs.com/czzz/p/15852880.html

浙公网安备 33010602011771号