前言:
Python的logging模块是内建的、功能强大的日志系统,可通过简单的配置,就能满足基本到复杂的日志管理需求。它可以让你以各种方式记录错误、调试信息、以及其他运行时的信息,这些都是应用程序健壯性、可维护性的关键。
1 基础概念
在深入了解之前,先理解logging模块的几个基本概念:
Logger:应用程序代码直接使用的接口。
Handler:用于将日志记录(log record)发送到合适的目的地。
Formatter:用于配置日志信息的最终顺序、结构和内容。
Level:日志级别,如DEBUG、INFO、WARNING、ERROR、CRITICAL等,用于区分日志的重要性。
debug: 用于开发者调试,显示变量等详细信息; 正常版本不应包含
info: 通知用户关键的正常行为,如“主库添加成功”;用简单、明确的语言记录
warning:不正常或偏离预期的行为; 不会立即影响系统,但具有潜在风险
critical:未知的不正常行为,超出已知容错;可能会影响程序未来运行
error: 无法修复的严重错误;必须立即处理并可能需要停止程序。
1.1 简单的示例:
#!/usr/bin/env python
# coding=utf-8
"""
# @Time : 2024/4/8
# @Author : Summer
# @File : logger.py
# @describe:
"""
import logging
# 配置日志等级为INFO,日志格式等
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# 获取logger对象
logger = logging.getLogger(__name__)
# 记录不同等级的日志
logger.debug('This is a debug message.')
logger.info('This is an info message.')
logger.warning('This is a warning message.')
logger.error('This is an error message.')
logger.critical('This is a critical message.')
对于简单的脚本或小型项目,basicConfig方法的配置足够使用。但是,对于更复杂的日志需求,可能需要配置多个handler、formatter,并灵活地应用不同的日志级别。
2 彩色日志
logging模块默认不支持彩色日志。要实现彩色日志,可以自定义Formatter,在输出的文本中加入终端色彩代码。一个简单的方式是使用colorlog包,它是一个允许彩色配置输出的第三方库。
colorlog的使用
#!/usr/bin/env python
# coding=utf-8
"""
# @Time : 2024/4/8
# @Author : Summer
# @File : logger.py
# @describe:
"""
import colorlog
import logging
# 创建logger对象
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
# 创建handler
ch =