Python 默认 Logging 级别及其示例

在开发Python应用程序时,日志记录(Logging)是调试和监控程序运行状态的重要工具。Python的logging模块提供了一种灵活且强大的方式来记录应用程序的信息。本文将详细介绍Python logging模块的默认级别,并通过示例来说明如何使用这些级别。

Python Logging 模块简介

Python的logging模块是标准库的一部分,它提供了一种机制来记录应用程序的事件信息。通过配置不同的日志级别,开发者可以选择性地记录不同严重程度的消息。

日志级别

logging模块定义了以下几个日志级别,按严重程度从低到高排列:

  • DEBUG:详细信息,通常只在调试问题时使用。
  • INFO:确认一切按预期工作。
  • WARNING:表示可能发生了一些意外,但应用程序仍然可以继续运行。
  • ERROR:由于更严重的问题,某些功能不能正常工作。
  • CRITICAL:严重的错误,表明程序可能无法继续运行。
默认日志级别

Python logging模块的默认日志级别是WARNING。这意味着,如果不进行任何配置,只有WARNING及以上级别的日志消息会被记录。

示例代码

下面是一个简单的示例,演示如何使用Python的logging模块记录不同级别的日志消息,并展示默认日志级别的效果。

import logging

# 创建一个logger对象
logger = logging.getLogger('example_logger')

# 设置默认的日志级别
logger.setLevel(logging.DEBUG)

# 创建一个StreamHandler,用于输出到控制台
handler = logging.StreamHandler()

# 设置handler的日志级别为默认级别(WARNING)
handler.setLevel(logging.WARNING)

# 创建一个Formatter,用于设置日志格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)

# 将handler添加到logger
logger.addHandler(handler)

# 记录不同级别的日志消息
logger.debug('这是一条调试信息')
logger.info('这是一条信息消息')
logger.warning('这是一条警告消息')
logger.error('这是一条错误消息')
logger.critical('这是一条严重错误消息')
运行结果

当你运行上述代码时,控制台将只显示WARNING及以上级别的日志消息,因为StreamHandler的默认日志级别是WARNING

2023-10-05 12:34:56,789 - example_logger - WARNING - 这是一条警告消息
2023-10-05 12:34:56,790 - example_logger - ERROR - 这是一条错误消息
2023-10-05 12:34:56,790 - example_logger - CRITICAL - 这是一条严重错误消息
修改默认日志级别

如果你希望记录所有级别的日志消息,可以修改StreamHandler的日志级别。例如,将其设置为DEBUG

import logging

# 创建一个logger对象
logger = logging.getLogger('example_logger')

# 设置logger的日志级别为DEBUG
logger.setLevel(logging.DEBUG)

# 创建一个StreamHandler,用于输出到控制台
handler = logging.StreamHandler()

# 设置handler的日志级别为DEBUG
handler.setLevel(logging.DEBUG)

# 创建一个Formatter,用于设置日志格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)

# 将handler添加到logger
logger.addHandler(handler)

# 记录不同级别的日志消息
logger.debug('这是一条调试信息')
logger.info('这是一条信息消息')
logger.warning('这是一条警告消息')
logger.error('这是一条错误消息')
logger.critical('这是一条严重错误消息')
运行结果

这次运行上述代码时,控制台将显示所有级别的日志消息:

2023-10-05 12:34:56,789 - example_logger - DEBUG - 这是一条调试信息
2023-10-05 12:34:56,790 - example_logger - INFO - 这是一条信息消息
2023-10-05 12:34:56,791 - example_logger - WARNING - 这是一条警告消息
2023-10-05 12:34:56,792 - example_logger - ERROR - 这是一条错误消息
2023-10-05 12:34:56,793 - example_logger - CRITICAL - 这是一条严重错误消息
总结

通过本文,你了解了Python logging模块的默认日志级别是WARNING,并且学会了如何通过修改StreamHandler的日志级别来记录不同级别的日志消息。日志记录是开发过程中不可或缺的一部分,合理配置日志级别可以帮助你更好地调试和监控应用程序。

欢迎点赞、关注、转发、收藏!!!