Python中的日志模块(logging module)提供了灵活的日志记录功能,使开发者能够在程序运行时记录各种级别的信息,从而方便调试、跟踪程序的执行情况,并定位可能出现的问题。
日志模块可以用来:
- 记录程序的运行情况: 开发者可以使用日志模块记录程序的关键步骤、状态变化等信息,以便后续分析和追踪。
- 调试程序: 当程序出现问题时,日志可以记录错误信息、异常堆栈跟踪等,帮助开发者定位问题所在。
- 监控程序运行: 日志记录可以帮助监控程序的运行状态,包括性能监控、资源利用情况等。
- 追踪用户行为: 在服务器端应用中,日志记录也可以用于追踪用户行为,例如记录用户的请求、响应以及其他与用户交互相关的信息。
日志模块提供了多种日志级别,包括 DEBUG、INFO、WARNING、ERROR 和 CRITICAL 等级别,开发者可以根据需要选择适当的级别进行记录。此外,日志模块还支持日志的格式化、输出到不同的目标(例如文件、控制台、网络等)、日志的过滤等功能,使得日志记录更加灵活和强大。
1.日志模块的简单调用
python的日志模块默认输出且只显示了大于等于警告(WARNING)级别的日志,所以一般不显示DEBUG和INFO级别的日志。默认输出日志时可以输出警告信息、错误信息、严重信息等。
import logging # 导入日志模块
# 默认输出且只显示了大于等于WARNING级别的日志
logging.debug('debug message') # 记录DEBUG级别的日志,但由于默认配置只显示 WARNING 及以上级别的消息,所以不会被显示
logging.info('info message') # 记录INFO 级别日志,同样由于默认配置不会被显示
logging.warning('warning message') # 记录一个WARNING级别的日志
logging.error('error message') # 记录一个WARNING级别的日志,高于默认配置的WARNING级别也会被显示。
logging.critical('critical message') # 记录一个CRITICAL 级别的日志,高于默认配置,因此也会被显示。
2.低级别日志模块的调用
如要输出debug和info级别的日志信息,首先需要创建一个日志记录器,并设置其级别为 DEBUG。然后创建一个处理器并设置其级别为 DEBUG,将其添加到记录器中。因此,记录器和处理器都能够处理 DEBUG 级别的日志信息。最后就可以输出 DEBUG 和 INFO 级别的日志信息,它们都会被输出到控制台。
import logging
# 创建日志记录器
logger = logging.getLogger()
logger.setLevel(logging.DEBUG) # 设置记录器级别为 DEBUG
# 创建处理器(Handler)并设置级别
console_handler = logging.StreamHandler() # 输出到控制台
console_handler.setLevel(logging.DEBUG) # 设置处理器级别为 DEBUG
# 创建格式化器
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
# 将格式化器添加到处理器
console_handle