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)

# 将文件处理器添加到日