【Python】Python中的logging模块介绍和示例

python中使用sys模板和logging模块获取行号和函数名的方法 这篇文章主要介绍了python中使用sys模板和logging模块获取行号和函数名的方法,需要的朋友可以参考下 对于python,这几天一直有两个问题在困扰我: 1.python中没办法直接取得当前的行号和函数名。这是有人在论坛里提出的问题,底下一群人只是在猜测python为什么不像__file__一样提供__line__和__func__,但是却最终也没有找到解决方案。 2.如果一个函数在不知道... 阅读详情

Python中的logging模块是一个强大的内置模块,用于记录和跟踪应用程序的运行过程。它提供了灵活的日志记录功能,可以将日志消息输出到多个目标(如控制台、文件、远程服务器等),并支持不同的日志级别。以下是logging模块的一些关键概念和使用方法:

关键概念

  1. Logger: 日志记录器,用于生成日志消息。应用程序代码中使用logger对象记录日志。
  2. Handler: 处理器,定义日志消息的输出位置(如控制台、文件、网络等)。
  3. Formatter: 格式化器,定义日志消息的格式(如时间戳、日志级别、消息内容等)。
  4. Log Level: 日志级别,用于表示日志消息的严重程度。常见的日志级别有:
    • DEBUG: 详细的调试信息,通常用于诊断问题。
    • INFO: 一般的运行信息,表示程序正常运行。
    • WARNING: 警告信息,表示可能的问题。
    • ERROR: 错误信息,表示发生了严重的问题。
    • CRITICAL: 致命错误信息,表示程序无法继续运行。

基本用法

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

import logging

# 创建一个Logger对象
logger = logging.getLogger('example_logger')
logger.setLevel(logging.DEBUG)  # 设置日志级别

# 创建一个Handler对象,将日志输出到控制台
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)

# 创建一个Formatter对象,定义日志格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
console_handler.setFormatter(formatter)

# 将Handler添加到Logger
logger.addHandler(console_handler)

# 记录日志消息
logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')

高级用法

将日志输出到文件

可以使用FileHandler将日志消息写入文件:

file_handler = logging.FileHandler('app.log')
file_handler.setLevel(logging.ERROR)
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)

配置多个Handler

可以为同一个Logger配置多个Handler,以实现日志消息的多种输出方式:

logger.addHandler(console_handler)
logger.addHandler(file_handler)

使用配置文件配置日志

可以使用配置文件(如JSON或YAML)配置日志:

import logging.config
import json

config = {
    "version": 1,
    "formatters": {
        "default": {
            "format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
        }
    },
    "handlers": {
        "console": {
            "class": "logging.StreamHandler",
            "level": "DEBUG",
            "formatter": "default"
        },
        "file": {
            "class": "logging.FileHandler",
            "level": "ERROR",
            "formatter": "default",
            "filename": "app.log"
        }
    },
    "root": {
        "level": "DEBUG",
        "handlers": ["console", "file"]
    }
}

logging.config.dictConfig(config)
logger = logging.getLogger()

logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')

自定义Logger

可以创建多个Logger对象,用于不同的模块或子系统:

module_logger = logging.getLogger('module_logger')
module_logger.setLevel(logging.INFO)
module_logger.addHandler(console_handler)

module_logger.info('This is an info message from module_logger')

捕获异常信息

可以使用exception方法记录异常堆栈信息:

try:
    1 / 0
except ZeroDivisionError:
    logger.exception("Exception occurred")

logging模块是Python应用程序中记录和调试的重要工具,灵活配置和使用该模块可以帮助开发者更好地了解和维护代码。

Python中使用logging和traceback模块记录日志和跟踪异常 logging模块 logging模块用于输出运行日志,可以设置不同的日志等级,保存信息到日志文件中等。 相比print,logging可以设置日志的等级,控制在发布版本中的输出内容,并且可以指定日志的输出格式。 使用logging在终端输出日志 #!/usr/bin/env python # -*- coding:utf-8 -*- import logging # 引入logging模块 ... 阅读详情

相关推荐

Python常用模块 之 datetime模块和logging模块实战 使用

Python常用模块 之 datetime模块和logging模块实战 使用

孤寒者的博客 3万+

Python的Logging模块

万字长文带你学透Python的Logging模块,文章通俗易懂且带有相关代码演示,具体案例助你理解

m0_60981735的博客 1万+

多个MOS管并联应用场景的四大要点

动态运行时,阈值电压Vgsth最低的MOS管首先打开,最后关闭。这种MOS管一般会占据更多的开关损耗,并且在开关转换过程中,承担了更高的电应力。

VBsemi的博客 3750

python——日志模块(logging)

python——日志模块(logging

黑砂的博客 3067

华为AC外置Portal认证方案配置步骤指南

华为AC外置Portal认证方案配置步骤指南

m0_46129105的博客 7675

Python量化交易实战:如何用pytdx库快速解析通达信.day文件(附完整代码)

本文详细介绍了如何使用Python的pytdx库高效解析通达信.day本地数据文件,构建免费、稳定的量化交易数据源。文章提供了从环境配置、基础数据读取、复权处理到板块信息获取的完整实战代码,并演示了如何将处理后的数据无缝接入Backtrader等回测框架,为量化策略开发提供可靠的数据基础。

ppp33的博客 1144

Python的logging模块

DEBUG: 详细信息,通常只在调试问题时使用。INFO: 确认一切按预期运行。WARNING: 指示可能出现的问题,但仍可继续运行。ERROR: 由于更严重的问题,某些功能无法执行。CRITICAL: 严重错误,程序可能无法继续运行。

KIKI3666的博客 2635

新手如何学习车载底层嵌入式软件开发(AutoSar)

汽车嵌入式开发

ACarSoft的博客 4221

Python 常用模块(八):logging模块

本文系统讲解了 Python 中日志模块(logging)的原理、用途与在实际项目中的最佳实践。我们以 Django 日志配置为切入点,引出了 logging 模块中常见的类与技巧,并详细列举了格式化字符串的使用方法。在理解源码的基础上,探讨了日志调用的时机与位置对后续排查问题的重要性。同时结合实际案例,介绍了日志在爬虫项目中的具体应用,并推荐了如 loguru 这样的优秀第三方日志库,为开发者构建更加灵活、可读性强的日志系统提供参考。适合所有对日志感兴趣的 Python 开发者阅读与实践。

XAMO Lab|代码、调试与复盘笔记 2460

在 SAP 里玩转 FTP:标准程序 RSFTP00x 全景解析与落地实践

摘要:SAP系统通过封装的标准FTP程序(RSFTP001-008)提供便捷的文件传输能力,适用于各类集成场景。关键点包括:1)依赖SAPFTP可执行程序和RFC目的地;2)使用RSFTP005进行前置检查并生成RFC配置;3)标准报表各司其职,如RSFTP002用于命令测试、RSFTP007/008提供参考实现;4)开发时组合FTP_CONNECT/COMMAND/DISCONNECT等函数模块。特别注意前台(SAPFTP)与后台(SAPFTPA)的环境差异,这是常见故障点。该方案通过标准化工具链显著降低

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 210

js逆向第3例:蝉妈妈大屏实时数据formDataSign加密

蝉妈妈大屏抖音直播实时数据是抓取抖音直播间数据的实时数据,有类似需求的公司但没有能力去搞定抖音,抓取蝉妈妈数据也是一个不错的选择。接下来就是调试找到加密点,说句题外话蝉妈妈的所有js文件打包方式用的都是webpack5,那如何区分打包方式可以阅读这篇文章。时间戳 ,经过观察发现加密参数是实时变化的。这个函数扣下来,在浏览器控制台中测试一下。言归正传,打断点找到变量。继续打断点向上找又发现了。查看请求参数,可以看到。请求的内容,那么这个。

花臂不花Home 1540

python logging模块

实际开发一个application,首先可以通过logging配置文件编写好这个application所对应的配置,可以生成一个根logger,如'PythonAPP',然后在主函数中通过fileConfig加载logging配置,接着在application的其他地方、不同的模块中,可以使用根logger的子logger,如'PythonAPP.Core','PythonAPP.Web'来进行log,而不需要反复的定义和配置各个模块的logger。通过YAML文件进行配置,比JSON看起来更加简介明了,

2401_86940371的博客 1821

如何通过Davinci Configurator来新增一个BswM仲裁规则

详细介绍如何通过Davinci Configurator来新增一个BswM仲裁规则。

initiallizer的博客 771

【Python】logging模块函数详解和示例

在Python中,LOGGER通常是指一个用于记录日志的模块或对象。它可以帮助你在程序中跟踪和记录事件,以便于调试、错误跟踪和日志分析。Python的标准库中包含了一个名为logging的模块,它提供了一个灵活且功能强大的日志记录系统。本文对相应的函数进行详解和示例,以帮助大家理解和使用。

不定时分享,互相学习,共同进步 3313

DeiT详解:知识蒸馏的Transformer

DeiT模型(8600万参数)仅用一台 GPU 服务器在 53 hours train,20 hours finetune,仅使用 ImageNet 就达到了 84.2 top-1 准确性,而无需使用任何外部数据进行训练,性能与最先进的卷积神经网络(CNN)可以抗衡。其核心是提出了针对 ViT 的教师-学生蒸馏训练策略,并提出了方法,使得在视觉领域训练得又快又好。

走在深度学习前沿的小宋 2636

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Python模块之logging和colorlog

Python模块之logging和colorlog

一起学习哈 2031

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

python之re和logging模块

1、re模块 1.1re模块的概念 re模块就其本质而言,正则表达式(或RE)是一种小型的、高度专业化的编程语言,它内嵌于python中,并通过re模块实现。正则表达式模式被编译成一系列的字节码,然后用c编写的匹配引警执行。 1.2 字符匹配 普通字符:大多数字符和字母都会和自身匹配。 import re >>> re.findall('c...

weixin_30377461的博客 142

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Python logging模块切分和轮转日志

Python logging模块切分和轮转日志 logging 模块可以实现日志的输出和写入文件,但实际工作中,对于日志是使用不仅限于输出那么简单。 logging基本使用参考:https://blog.youkuaiyun.com/weixin_43790276/article/details/99617949 logging 模块中实现了很多日志处理的方法,可以帮我们实现日志的管理功能。 一、lo...

weixin_43790276的博客 8168

python模块logging和tqdm

logging是写日志的模块 tqdm是生成进度条的模块 参考:tqdm、Python的Tqdm模块——进度条配置

weixin_46515047的博客 2612

Python logging 模块之 logging.basicConfig 用法和参数详解

Python 函数之 logging.basicConfig 用法和参数详解 先举例个例子: import logging logging.basicConfig(level=logging.INFO, format='%(asctime)s %(filename)s %(levelname)s %(message)s', ...

静堂先生的博客 6万+

Python中使用 logging 和 traceback 模块记录日志和跟踪异常

logging模块 logging模块用于输出运行日志,可以设置不同的日志等级,保存信息到日志文件中等。 相比print,logging可以设置日志的等级,控制在发布版本中的输出内容,并且可以指定日志的输出格式。 1. 使用logging在终端输出日志 #!/usr/bin/env python # -*- coding:utf-8 -*- import logging # 引入log...

牧野的博客 1万+

python -- subprocess和logging模块

python -- subprocess和logging模块 subprocess模块,相当于调用linux的shell subprocess模块是对以下两个模块的替换: os.system,调用shell命令 os.spawn,产生一个新进程 logging模块 logging的日志可以分为: debug(),默认不打印,级别最低 info(),默认不打印 warning() e...

aizhao9597的博客 522

Python的logging模块和第三方模块下载与安装

日志就是在你编码的过程中记录一些代码的变化比如:记录用户什么时间登录的,用户什么时间注册的等日志的存在形式:文件类型的,MySQL中,elasticsearch搜索引擎(数据库)目的:后续可以查看错误原因,对账等"""日志的级别:后续我们写日志的时候,可以按照日志的级别选择性的记录"""# 这说明python默认的日志级别设置为WARNING日志级别等级 CRITICAL > ERROR > WARNING > INFO > DEBUG2.日志格式。

qq_65852978的博客 3355

python中的logging记录日志_Python中使用logging和traceback模块记录日志和跟踪异常

logging模块logging模块用于输出运行日志,可以设置不同的日志等级,保存信息到日志文件中等。 相比print,logging可以设置日志的等级,控制在发布版本中的输出内容,并且可以指定日志的输出格式。1. 使用logging在终端输出日志#!/usr/bin/env python# -*- coding:utf-8 -*-import logging # 引入logging模块# 设置打...

weixin_39599317的博客 714

python的日志模块logging和syslog

  syslog模块是在unix环境下工作的模块,不能用于windows,在windows环境下可以使用logging模块。   一、syslog   syslog模块可以用于记录系统运行的信息,这个模块提供的方法有,syslog(priority,message),它将message送入系统日志,priority的默认选项为LOG_INFO,openlog([ident[,log...

weixin_30237719的博客 1298

Python使用logging模块输出到屏幕和文件

日志 日志是跟踪软件运行时所发生的事件的一种方法。软件开发者在代码中调用日志函数,表明发生了特定的事件。事件由描述性消息描述,该描述性消息可以可选地包含可变数据(即,对于事件的每次出现都潜在地不同的数据)。事件还具有开发者归因于事件的重要性;重要性也可以称为级别或严重性。 logging提供了一组便利的函数,用来做简单的日志。它们是 debug()、 info()、 warning()、 erro...

weixin_40917409的博客 3379
上一篇: 【Python】Python中@wraps的用法
下一篇: 【Python】Python中变量或者函数加下划线‘_‘的含义
读思辨
博客等级 码龄9年 428粉丝 61原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值