python logging日志防止重复打印

【无标题】python中日志重复打印的解决方案 最近在写代码的过程中,遇到日志重复打印的问题,经过查阅资料和打断点分析,主要的原因是logger被多次声明,所以以下列出两种解决方案: #方案一,每次创建handler时先清空handler logger.handlers.clear() #方案二 #为了防止logger被创建很多个handler,这里在创建handler时先进行判断 if not logger.handlers: #handler为空,则创建handler # create console handler and set level to 阅读详情

直接上代码

def getLogging(logFilename='/app/logs/logs.txt'):
    logger = logging.getLogger()
    if not logger.handlers:
        logging.basicConfig(
            level=logging.INFO,
            format='%(asctime)s.%(msecs)03d %(levelname)s | [%(threadName)s] %(name)s [%(lineno)d] | %(filename)s %(funcName)s %(message)s',
            datefmt='%Y-%m-%d %H:%M:%S',
            filename=logFilename,
            filemode='a')
        filehandler = logging.FileHandler(logFilename)
        logger.addHandler(filehandler)
    return logger
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)

多次调用出现重复打印,在获取logger对象的时候判断是否已有handlers

一点小问题,logger自带%(message)s 的消息输出,自己家的话会换行打印一份,我这里需要同行打印不得不加,可自行更改

python logging重复记录日志问题的解决方法 python的logging模块是python使用过程中打印日志的利器,下面这篇文章主要给大家介绍了关于python logging重复记录日志问题的解决方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下 立即下载

相关推荐

【嵌入式Linux】EC20模块多运营商自适应PPP拨号实战:从IMSI识别到网络配置

本文详细介绍了在嵌入式Linux系统中,如何基于EC20 4G模块实现多运营商自适应PPP拨号。通过解析SIM卡的IMSI识别运营商,并动态配置对应的APN和拨号参数,结合AT指令交互与健壮的pppd脚本,解决了设备跨地域部署时的网络自动连接问题,提升了物联网设备的部署效率和稳定性。

fox11的博客 902

Python之配置日志的几种方式(logging模块)

作为开发者,我们可以通过以下3种方式来配置logging: 1)使用Python代码显式的创建loggers, handlers和formatters并分别调用它们的配置函数; 2)创建一个日志配置文件,然后使用fileConfig()函数来读取该文件的内容; 3)创建一个包含配置信息的dict,然后把它传递个dictConfig()函数; 需要说明的是,logging.basicConfig()也属于第一种方式,它只是对loggers, handlers和formatters的配置函数进行了封装。另

huobanjishijian的专栏 1041

python代码爬取大众点评评论!直接copy就可以运行!

python代码爬取大众点评评论!直接copy就可以运行!

QiuQiRuQin的博客 1万+

深度剖析 Python 日志重复打印问题

log重复打印存在两种情况:未定义logger(),默认使用了RootLogger,一个python程序内全局唯一的,所有Logger对象的祖先每次实例化返回的都是RootLogger对象自定义的log函数,每次调用都实例化,传入相同的,经验证使用了单例模型也就是说每次实例化返回的是同一个logger对象,然后每次都调用方法添加日志处理器导致handlers列表添加了相同的handler(注意:日志的打印由handler控制)以此类推,调用几次就会有几个handler,然后前面打印的log。

qq_31455841的博客 4641

DC/DC开关电源EMC仿真红宝书

本红宝书系统性介绍开关电源EMC仿真方法,包括仿真原理、仿真思路、仿真工具以及仿真效率提升与仿测一致性的实战经验。从理论到仿真,从仿真到应用,真正帮你实现一文掌握开关电源EMC仿真!全文约14000字,适读人群:开关电源设计、电磁兼容EMC相关从业者,电磁相关专业研究生及CST仿真爱好者等。

电磁学社 2498

别再手动调参数了!用3ds Max的tyDiffusion插件,5分钟搞定AI动态纹理生成

本文介绍了3ds Max的tyDiffusion插件如何通过AI技术快速生成动态纹理,大幅提升3D美术师的工作效率。从火焰、水流到布料飘动,tyDiffusion能在5分钟内完成传统手工需要数小时的任务,且效果更自然。文章详细解析了插件的核心功能、实战配置及进阶应用,帮助用户轻松实现AI动态纹理生成。

weixin_30919429的博客 667

解决logging模块输出重复日志的问题

还有一些其他解决方案可以参考https://www.jianshu.com/p/b4be055567f7。如下图所示,logging模块会打印重复日志。

Theshy669的博客 657

MEG预处理-Brainstorm

Brainstorm下载和安装 去Brainstorm官网进行下载:打开网页后,点击左侧Download;在跳出来的界面中进行简单的注册,注册完成后可以进行下载 解压后得到“brainstorm3”的文件夹,里面包含Brainstorm工具包的所有文件,把这个文件夹放在某个路径如"E:\matlab_tools\brainstorm3"即可 同样在某个路径建立空的文件夹命名为:brainstorm_db用于工具包运行过程中自动存储生成的文件,所以这个文件中生成的数据不要手动移动删除 在Matlab中,把.

AxeChen的博客 6124

【python】logging日志打印重复输出冗余日志

在第二次被调用时,logger.handlers已经存在一个‘StreamHandler’,再次执行‘logger.addHandler(sh)’就会再次添加一个‘StreamHandler’,此时的logger有两个‘StreamHandler’,输出两条重复的日志;在第三次被调用时,logger.handlers已经存在两个‘StreamHandler’,再次执行‘logger.addHandler(sh)’就会再次添加一个,此时的logger有三个‘StreamHandler’,输出三条重复的日志。

gaogsf的博客 682

先进封装类别分析与典型案例

当制程微缩逼近物理极限、单颗大芯片(reticle limit)面积受限于光罩尺寸,且逻辑、存储、射频、传感等功能无法用同一套工艺最经济地制造时,性能增益的来源从 "晶体管密度" 转向 "互连密度"。先进封装的本质,是在芯片外部用更短、更密、更宽的路径把多个裸 die(die)互连起来,换取更高带宽、更低延迟、更小体积和异构集成能力。行业通常按划分为 2D、2.5D、3D、扇出、SiP 五大谱系,Chiplet/UCIe 则是贯穿其上的设计方法论,玻璃基板、共封装光学(CPO)是正在成型的新分支。

0 31

2026年海能达嵌入式岗位面试题集(含参考答案)

本文总结了嵌入式系统开发中的常见面试题,涵盖项目经验、外设接口、存储系统、编程基础、操作系统等核心模块。主要内容包括:1)项目核心经历的硬件/软件架构及问题解决思路;2)SPI、I2C等接口协议的时序特点与应用要点;3)NAND Flash存储管理中的ECC校验原理和文件系统对接方案;4)USB设备枚举流程等关键知识点。这些题目针对嵌入式岗位的技术考察重点,既包含底层硬件接口细节,也涉及系统级设计与优化策略,全面考察开发者的嵌入式系统能力。

Open 359

Python logging日志信息重复打印

Python logging日志信息重复打印--方法一:删除多余的日志处理器

kxuclub的博客 1009

BVH2SMPL 实战笔记

BVH2SMPL 实战笔记

jacke121的专栏 843

python logging 遇到的坑 日志重复打印问题的解决方法

python 中 logging模块 假如遇到多线程 或者多进程 或者在web框架中自定义logging的话(一个请求就是一个独立的线程)非常容易重复打印日志 和造成内存崩溃 所以解决方法如下:重写日志方法 用类:class Log(): import logging def __init__(self): self.logger = logging.getLogger(...

Chelydra的博客 8698

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【python】【logging模块】自定义logging模块的时候重复打印问题

在使用自定义logging模块后调用log会导致重复打印 自定义TLOG class TLOG(object): level_relations = { 'debug':logging.DEBUG, 'info':logging.INFO, 'warning':logging.WARNING, 'error':logging.ERROR, 'crit':logging.CRITICAL }#日志级别关系..

weixin_42870717的博客 956

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Python logging 正确配置:告别 print 调试与日志重复打印

线上服务出问题,你翻日志却发现:要么啥都没有(全靠print早被丢进 stdout 黑洞),要么同一条日志打了三遍,要么日志文件涨到几个 G 把磁盘撑爆。Python 的logging模块功能齐全,但默认行为反直觉,踩坑的人比用对的人多。这篇把生产级 logging 配置一次讲清:为什么别用 root logger、怎么避免重复打印、怎么按大小/时间轮转文件。

weixin_42662753的博客 671

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

logging 详解第一期:是谁偷偷动了我的 logger

新创建的 logger 为何无法正确 “发声”,不怀好意的日志究竟从何而来,精心配置的 logger 竟然然口口吐吐叠叠词词,到底是配置者的失误还是来自三方库的暗箱操作,欢迎走进 logging 详解的第一期:《是谁偷偷动了我的 logger》。 调试完成,实验启动! 2022-01-28 15:01:45,436 - mmdet - INFO - Epoch [1][0/7330] lr: 1.000e-02, eta: 8:28:55, time: 0.248, data_t

qq_39967751的博客 561

python控制台打印的log重复解决方案

在我们使用log模块输出日志时,经常会遇到log输出重复的问题,如下: 先来看这个文件log.py的代码: 代码示例: ''' 功能描述:实现控制台和文件同时记录日志的功能 编写人:超哥 编写日期: 步骤分析: 1-配置日志记录器名称 2-配置日志级别 3-配置日志格式(可以分别设置,也可以统一设置) 4-创建并添加handler-控制台 5-创建并添加handler-文件 6-提供对外获取logger ''' importlogging importsys ...

873

python logging 避免日志重复打印

【代码】python logging 避免日志重复打印。

颹蕭蕭 584

彻底解决Flask日志重复打印问题:从原理到实践

本文详细分析了Flask应用中日志重复打印的常见问题及其根本原因,包括日志处理器重复添加、混用logging与app.logger、以及多线程或多进程初始化导致的日志重复。针对这些问题,文章提供了一套完整的解决方案,包括统一使用app.logger、确保日志只初始化一次、修复后台线程的日志、以及禁用Flask默认日志等。通过实施这些方法,开发者可以有效解决日志重复问题,提升日志系统的清晰度和效率。

私聊前往站内信:https://i.youkuaiyun.com/#/msg/chat/weixin_44976692 1万+

Python | 解决方案 | 多个文件共用logger,重复打印问题

项目中封装了logging库为log.py,实现既把日志输出到控制台, 又写入日志文件文件。 python3.7.3 文件和调用方式如下: log.py v1 #encoding = utf-8 ###  # @ Description: 日志封装文件  # @ Author: fyy  # @ Date: 2020-12-30 10:48:00.

小天使faith的专栏 9063

python3 logging模块基本使用方法,解决重复打印及输出中文乱码的问题

1、logging模块使用方法 logger提供了应用程序可以直接使用的接口; handler将(logger创建的)日志记录发送到合适的目的输出; filter提供了细度设备来决定输出哪条日志记录; formatter决定日志记录的最终输出格式。 import logging logger = logging.getLogger("test") # 定义对应的程序模块名name...

xugexuge的博客 3010

python中logging模块显示不同颜色的日志

一、logging 基本使用 日志级别: NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL mylog2.py import logging def test(): logging.warning('12345') if __name__ == '__main__': test() #...

qq_36072270的博客 1万+

Python实现打印日志到文件类(Logging)

背景:俗话说的好,『打印日志光荣,单步输出可耻』,想着实现个python的项目间可通用的日志打印类 环境:Python3.8,mac10.15.6 知识记录:Logging库使用方法简单来说就是提供了一个打印日志的载体(logger),而handler就是这个工具中的模块,具体打印日志是handler决定的(输出地点,格式等等),执行logger相当于执行里头所有的handler(互不干扰)。 功能:在文件当前存储目录下创建Logs文件夹,根据时间(精确到小时)生成日志文件 使用方法:在项目目录创建

vocaloid01的博客 1083

python错误输出日志_解决Python logging模块无法正常输出日志的问题

废话少说,先上代码File:logger.conf[formatters]keys=default[formatter_default]format=%(asctime)s - %(name)s - %(levelname)s - %(message)sclass=logging.Formatter[handlers]keys=console, error_file[handler_console...

weixin_39690958的博客 1112

python打印日志,同时保存在文件(解决log重复打印问题)

python的log日志,打印在终端同时保存在文件,解决重复打印问题

weixin_43508499的博客 2328
上一篇: Content-Type数据格式对传参影响小记
下一篇: springboot-jpa-repo继承顶层封装,mybatis的下划线转驼峰配置和beancopy记录
sin_404
博客等级 码龄10年 93粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值