Python Logging的使用方法

本文详细介绍了Python中日志记录的使用方法,包括日志级别、记录方式、配置方法及核心组件如logger、handler、filter和formatter的作用。通过具体代码示例展示了如何将日志输出到终端或文件,并解释了日志流的处理过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 简介

使用场景
在这里插入图片描述
日志的严重程度
由高到低

Level
CRITICAL
ERROR
WARNING
INFO
DEBUG

logging默认的严重程度是WARNING,即在这个严重程度或以上的日志才会被记录。
有两种常用的记录日志的方式:

  1. 输出到终端
import logging
logging.error('hello')
  1. 记录到文件,也就是硬盘
import logging 
logging.basicConfig(filename='./log.log',level=logging.DEBUG)
logging.error('hello')

basicConfig方法用于快速设置日志,有下面的参数:

  • filename 包日志保存到哪个文件
  • filemode记录日志的模式,a代表在文件中追加日志,w是删除原有文件,创建新文件。
  • format 设置日志IDE输出格式,
  • level 日志的严重程度,
  • datefmt 日期格式
  • stream 日志输出到那里,如果有filename参数,忽略改参数
    logging中包含了四个主要的类:
  • logger提供应用程序直接使用的接口
  • handler将日志记录到指定的输出,例如文件或终端
  • filter提供了对日志进行过滤的功能
  • formatter决定日志记录的最终输出格式

2. logger

  1. 命名空间
    每一个logger都会有一个名字。名字中使用点号来进行等级管理。例如scanscan.htmlscan.pdf的上级
    logging中建议使用logger=logging.getLogger(__name__)来获取logger,因为__name__代表当前模块的路径
  2. 日志流
    当应用程序执行一个写日志操作时,例如logging.info(),日志流程图

如果logger有父类,日志流会同时发送给logger和logger的父类handler

  allot_logger('scan','./scan.log')
  allot_logger('scan.pdf', './scan.pdf.log')
  scan_log = logging.getLogger('scan')
  scan_pdf_log = logging.getLogger('scan.pdf')
  scan_log.info('scan_log')  # 日志只会输出到./scan.log文件
  scan_pdf_log.info('scan_pdf_log')  # 日志会输出到./scan.log和./scan.pdf.log两个文件

1.方法

  • Logger.setLevel()设置日志严重程度
  • logger.addHandler(),Logger.remoteHandler()添加或删除Handler
  • Logger.addFilter,Logger.remoteFilter()添加或删除Filter
  • Logger.debug(), Logger.info(), Logger.warning(), Logger.error(), and Logger.critical()记录日志,其中debug是日志等级。支持字符串格式化,例如logging.debug('error_msg:%s',error_msg)
  • Logger.log(level,msg)。logging.log(logging.WARN,'msg')等于logging.warn(msg)

2.属性

  • Logger.handlers 该logger已添加Handlers
  • Logger.filters 该logger已添加Filters
  • 1.获取Logger实例
    通过getLogger()来获取logger

3.Handler

一个logger可以设置0个或以上的Handler。logger执行记录日志的方法后,会把日志交给Handler来处理。
1.方法

  • Handler.setLevel() 设置logger的日志严重程度
  • Handler.addFilter,Handler.remoteFilter()添加或删除Filter
  • setFormatter() 设置日志输出的格式
    2.Handler类
    1.logging.StreamHandler
    输出日志到一个文件对象,可以是open打开的文件,也可以是系统终端,例如sys.stdout或sys.stderr。他的构造函数是StreamHandler([strm])

参考博客:Python LOGGING使用方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值