Python 日志级别实现步骤
1. 创建日志器(Logger)
首先我们需要创建一个日志器对象,用于记录日志信息。在Python中,可以使用logging模块来创建日志器。
import logging
# 创建日志器
logger = logging.getLogger('mylogger')
2. 配置日志级别(Level)
接下来,我们需要配置日志的级别。日志级别决定了哪些日志信息会被记录下来。Python提供了以下几个日志级别:
- DEBUG: 详细的信息,通常用于调试和开发阶段;
- INFO: 普通的信息,用于生产环境的正常运行;
- WARNING: 警告信息,表示可能出现问题的情况;
- ERROR: 错误信息,表示发生了一个错误但程序仍然可以继续运行;
- CRITICAL: 严重错误信息,表示程序无法继续运行。
可以根据实际需求选择适当的日志级别。
# 配置日志级别
logger.setLevel(logging.DEBUG)
3. 创建处理器(Handler)
处理器用于将日志信息发送到不同的目标,如控制台、文件等。我们可以根据需求选择不同类型的处理器。
3.1 控制台处理器(StreamHandler)
控制台处理器会将日志信息输出到标准输出流,通常用于在控制台查看日志。
console_handler = logging.StreamHandler()
3.2 文件处理器(FileHandler)
文件处理器会将日志信息写入到指定的文件中,通常用于保存日志信息以供后续分析。
file_handler = logging.FileHandler('log.txt')
4. 配置处理器
配置处理器需要指定日志的格式和日志级别,以及将处理器添加到日志器中。
4.1 配置控制台处理器
配置控制台处理器需要设置格式和日志级别,并将处理器添加到日志器中。
# 配置控制台处理器
console_handler.setLevel(logging.DEBUG)
# 设置控制台处理器的格式
console_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
console_handler.setFormatter(console_formatter)
# 将控制台处理器添加到日志器中
logger.addHandler(console_handler)
4.2 配置文件处理器
配置文件处理器需要设置格式和日志级别,并将处理器添加到日志器中。
# 配置文件处理器
file_handler.setLevel(logging.INFO)
# 设置文件处理器的格式
file_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(file_formatter)
# 将文件处理器添加到日志器中
logger.addHandler(file_handler)
5. 记录日志
最后,我们可以通过日志器来记录日志信息。
5.1 记录调试信息
logger.debug('This is a debug message')
5.2 记录普通信息
logger.info('This is an info message')
5.3 记录警告信息
logger.warning('This is a warning message')
5.4 记录错误信息
logger.error('This is an error message')
5.5 记录严重错误信息
logger.critical('This is a critical message')
完整示例代码
import logging
# 创建日志器
logger = logging.getLogger('mylogger')
# 配置日志级别
logger.setLevel(logging.DEBUG)
# 创建控制台处理器
console_handler = logging.StreamHandler()
# 配置控制台处理器
console_handler.setLevel(logging.DEBUG)
# 设置控制台处理器的格式
console_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
console_handler.setFormatter(console_formatter)
# 将控制台处理器添加到日志器中
logger.addHandler(console_handler)
# 创建文件处理器
file_handler = logging.FileHandler('log.txt')
# 配置文件处理器
file_handler.setLevel(logging.INFO)
# 设置文件处理器的格式
file_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(file_formatter)
# 将文件处理器添加到日