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通过订制,可以满足同时输出到控制台和文件

posted @ 2024-12-21 16:10  邵杠杠  阅读(0)  评论(0编辑  收藏  举报