python内置模块logging常用代码

一、基础用法

  import logging

  logging.basicConfig(

         level=logging.INFO,      #日志等级:DEBUG、INFO、WARNNING、ERROR、CRITICAL,此处写为INFO代表info往上的错误级别(warning、error、critical)都会被记录到日志中

            filename='./log.txt',  #日志写入文件名称为log.txt
filemode='w', #写入方式为‘w':覆盖重写 ;’a':续写
format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s'
           #日志时间   执行文件名 line: 报错行号 日志等级名 日志信息
datefmt='%Y-%m-%d %H:%M:%S' #日志时间写入格式
)
代码中写入日志:
logging.error('配置文件不存在')
logging.warnning('警告信息:代码执行待调整')
写入日志的信息要尽量准确表达问题
小项目基础用法足够

二、高级用法
(1)创建日志对象:
logger = logging.getLogger("my_logger")  # 获取一个 Logger 对象
logger.setLevel(logging.DEBUG)          # 设置日志级别

(2)创建handler (控制台和文件):
  # 控制台 Handler
  console_handler = logging.StreamHandler()  
  console_handler.setLevel(logging.WARNING)  # 控制台只输出 WARNING 及以上

  # 文件 Handler
  file_handler = logging.FileHandler("app.log", mode='a')  # 日志文件app.log 模式为a:续写模式
  file_handler.setLevel(logging.DEBUG)      # 文件记录 DEBUG 及以上

(3)设置formatter (日志格式)
  formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s',datefmt='%Y-%m-%d %H:%M:%S')
                         #日志时间   执行文件名  日志等级名     日志信息   时间写入模式
  console_handler.setFormatter(formatter)  # 应用格式到 控制台Handler
  file_handler.setFormatter(formatter) # 应用格式到 文件Handler

(4)将handler添加到logger对象
  logger.addHandler(console_handler)
  logger.addHandler(file_handler)

(5)使用logger记录日志
  logger.debug("调试信息")
  logger.info("普通信息")
  logger.warning("警告信息")

大项目使用logger+handler+formatter模式灵活记录日志
 
posted @ 2025-04-19 23:29  菠萝tang的学习日记  阅读(3)  评论(0)    收藏  举报