28.Python基础篇-logging模块
介绍:
logging
模块是Python内置的强大日志记录工具,支持多种输出方式、格式化选项及多进程支持。
日志的级别
logging
模块有五个内置的日志级别,从低到高:
- DEBUG:详细信息,用于诊断问题。
- INFO:常规信息,表示程序正常运行的状态。
- WARNING:警告信息,表示潜在问题或即将发生的错误。
- ERROR:错误信息,表示发生了实际错误。
- CRITICAL:严重错误,表示程序无法继续执行。
演示:
import logging logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s %(message)s', datefmt='%a, %d %b %Y %H:%M:%S', # filename='test.log', # filemode='a' ) logging.debug('debug message') logging.info('info message') logging.warning('warning message') logging.error('error message') logging.critical('critical message')
执行结果:
两种方式
logging.basicConfig()
logging.basicConfig()
用于配置日志的输出方式。常用的参数包括:
level
: 设置日志级别,决定输出哪些日志。format
: 设置日志输出格式。filename
: 将日志输出到文件。filemode
: 设置文件模式,默认为'a'
(追加模式),可以设置为'w'
覆盖模式。
日志格式的占位符:
%(asctime)s
:日志记录时间%(levelname)s
:日志级别(如DEBUG、INFO)%(message)s
:日志消息
logging.getLogger()(推荐使用)
代码说明
import logging # 创建记录器 logger = logging.getLogger('my_logger') logger.setLevel(logging.DEBUG) # 创建处理器 console_handler = logging.StreamHandler() file_handler = logging.FileHandler('app.log') # 创建格式化器 formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') # 设置格式 console_handler.setFormatter(formatter) file_handler.setFormatter(formatter) # 添加处理器 logger.addHandler(console_handler) logger.addHandler(file_handler) # 记录日志 logger.info("这条信息会同时输出到控制台和文件")
两种方式的区别
basicConfig的方式,只能输出到文件或者控制台,二选一
getLogger通过订制,可以满足同时输出到控制台和文件