python日志模块【logging】

news/2025/3/28 14:54:09/文章来源:https://www.cnblogs.com/cloud-2-jane/p/18791463

在 Python 里,logging 模块是一个强大且灵活的日志记录工具,它能帮助你在程序运行时记录不同级别的信息,方便调试、监控和问题排查。下面为你详细介绍 logging 模块的基本使用方法。

1. 基本使用

以下是一个简单的示例,展示了如何使用 logging 模块记录日志:

import logging# 配置日志记录
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')# 记录不同级别的日志
logging.debug('这是一条调试信息')
logging.info('这是一条普通信息')
logging.warning('这是一条警告信息')
logging.error('这是一条错误信息')
logging.critical('这是一条严重错误信息')

代码解释

  • import logging:导入 logging 模块。
  • logging.basicConfig():对日志记录进行配置。level=logging.DEBUG 表示将日志级别设置为 DEBUG,这意味着所有级别(DEBUGINFOWARNINGERRORCRITICAL)的日志都会被记录;format='%(asctime)s - %(levelname)s - %(message)s' 定义了日志的输出格式,包含时间、日志级别和日志信息。
  • logging.debug()logging.info() 等:用于记录不同级别的日志。

2. 日志级别

logging 模块定义了 5 个日志级别,从低到高分别为:

  • DEBUG:用于详细的调试信息,通常在开发和调试阶段使用。
  • INFO:用于记录程序运行过程中的普通信息,如程序启动、完成某个任务等。
  • WARNING:用于记录可能会导致问题的情况,但程序仍然可以继续运行。
  • ERROR:用于记录程序运行过程中出现的错误,但不影响程序的整体运行。
  • CRITICAL:用于记录严重的错误,可能会导致程序无法继续运行。

3. 日志输出到文件

除了将日志输出到控制台,还可以将日志输出到文件中。示例如下:

import logging# 配置日志记录到文件
logging.basicConfig(filename='app.log', level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')# 记录日志
logging.debug('这是一条调试信息,将被记录到文件中')

代码解释

  • filename='app.log':指定日志文件的名称为 app.log

4. 自定义日志记录器

除了使用默认的日志记录器,还可以创建自定义的日志记录器。示例如下:

import logging# 创建自定义日志记录器
logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)# 创建文件处理器
file_handler = logging.FileHandler('custom.log')
file_handler.setLevel(logging.DEBUG)# 创建控制台处理器
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)# 定义日志格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)# 将处理器添加到日志记录器
logger.addHandler(file_handler)
logger.addHandler(console_handler)# 记录日志
logger.debug('这是自定义日志记录器的调试信息')
logger.info('这是自定义日志记录器的普通信息')

代码解释

  • logging.getLogger('my_logger'):创建一个名为 my_logger 的自定义日志记录器。
  • logging.FileHandler('custom.log'):创建一个文件处理器,将日志记录到 custom.log 文件中。
  • logging.StreamHandler():创建一个控制台处理器,将日志输出到控制台。
  • logger.addHandler():将处理器添加到日志记录器中。

5. 异常处理中的日志记录

在异常处理中使用日志记录可以帮助你更好地排查问题。示例如下:

import logging# 配置日志记录
logging.basicConfig(level=logging.ERROR, format='%(asctime)s - %(levelname)s - %(message)s')try:result = 1 / 0
except ZeroDivisionError as e:logging.error('发生除零错误', exc_info=True)

代码解释

  • exc_info=True:在日志中记录异常的详细信息,包括异常类型和堆栈跟踪。

通过以上介绍,你可以掌握 logging 模块的基本使用方法,根据实际需求灵活配置日志记录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/905472.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue+leaflet示例:矢量瓦片展示(附源码下载)

demo源码运行环境以及配置运行环境:依赖Node安装环境,demo本地Node版本:14.19.1。 运行工具:vscode或者其他工具。 配置方式:下载demo源码,vscode打开,然后顺序执行以下命令: (1)下载demo环境依赖包命令:npm i (2)启动demo命令:npm run dev (3)打包demo命令: n…

vue+leaflet示例:图层管理控件样式优化(附源码下载)

demo源码运行环境以及配置运行环境:依赖Node安装环境,demo本地Node版本:14.19.1。 运行工具:vscode或者其他工具。 配置方式:下载demo源码,vscode打开,然后顺序执行以下命令: (1)下载demo环境依赖包命令:npm i (2)启动demo命令:npm run dev (3)打包demo命令: n…

2025西安交大集训Day4:单调栈,单调队列,线段树

2025西安交大集训Day4:单调栈,单调队列,线段树 引入 何为单调栈?顾名思义,单调栈即满足单调性的栈结构。与单调队列相比,其只在一端进行进出。 为了描述方便,以下举例及伪代码以维护一个整数的单调递增栈为例。 过程 插入 将一个元素插入单调栈时,为了维护栈的单调性,需要…

日事清甘特图制作工具:一键生成,精准管理项目周期

还在为制作甘特图而焦虑吗?别担心,日事清甘特图重磅登场,轻松帮你完美化解难题,让复杂任务规划变得简单高效!在工作中,我们很多岗位都经常需要对项目进度进行追踪,例如人事经理需要要追踪招聘进度或员工培训计划, 项目经理负责监督项目的各个阶段以保证按计划执行, 软…

网站自动备份同步工具,自动备份同步工具有哪些?

网站自动备份同步工具是保障网站数据安全的关键,需兼顾实时性、可靠性、易用性。以下是分场景推荐的工具及部署方案:一、工具分类推荐80KM备份软件 功能:支持多种备份方式,如系统备份、磁盘备份、文件备份等,支持定时备份。 步骤:管理端点新增,不管选择从管理端备份到客…

智慧运维如何赋能现代医院?看某中西医结合医院的数字化转型之路

在医疗信息化浪潮中,某中西医结合医院作为一家集医疗、教学、科研于一体的三甲医院,始终走在创新前沿。面对业务系统庞杂、跨部门协作效率待提升等挑战,医院携手采和科技,以“智慧运维”为核心理念,开启了一场数字化转型的深度实践。 痛点破局:从“人找服务”到“服务找人…

day:29 断点

一、断点介绍 1.为什么要打断点呢? 接口测试可以不需要管前端的,主要测后端的功能 2.断点的作用: 1.开发人员,调试,出错后在某个位置打断点调试代码; 2.测试人员,测试,绕过前端的限制,测试后端的反应; 3.测试人员,构造数据,设置断点可篡改请求和返回的数据包。根据测…

UE5--002--EnhancedInput

1. IA_Pause 输入动作2. IMC_Default 输入映射上下文3. BP_FirstPersonCharacter蓝图3. 1 给PlayerController动态配置MappingContext3. 2 事件响应4. BP_FirstPersonGameMode蓝图4. Project Settings

信用消费的血栓问题-逾期订单诊断指南

在信用消费场景中,用户最怕看到的两个字莫过于“逾期”,但现实中,有相当一部分逾期记录源于系统协同中的技术误差。在本篇文章中我将揭示逾期订单的形成机制,并给出一些常见问题的解决方式,希望能帮助到大家。在信用消费场景中,用户最怕看到的两个字莫过于“逾期”——它…

Linux软件无法获取IGPV3的udp数据问题

问题 tcpdump能获取到数据,但是其他进程(内部获取udp)无法获取此udp数据 源是来自IGPV3的组播源,添加之前已经试过加入组播,但是还是无法接收到数据 解决 使用命令 systcl -a |grep rp_filter发现设备开启了严格的反向过滤关闭 net.ipv4.conf.all.rp_filter和net.ipv4.co…