Python日志库Loguru入门

Python日志记录库——loguru 在 Python 中用到日志记录,那就不可避免地会用到内置的 logging标准库。虽然logging 库采用的是模块化设计,你可以设置不同的 handler 来进行组合,但是在配置上通常较为繁琐;而且如果不是特别处理,在一些多线程或多进程的场景下使用 logging还会导致日志记录会出现错乱或是丢失的情况。Python 日志记录工具logging标准库logging的替代品是loguru,loguru使用起来就简单的多。 阅读详情

项目开发,了解代码运行情况并记录日志至关重要。对于python开发者来说,Loguru是一个简单但功能强大的日志记录库,与Python内置的logging模块相比,Loguru提供了更简洁的API和更多的功能,它使得跟踪代码的行为变得轻松而高效。

【1.安装Loguru】
pip install loguru

【2.基本用法】

from loguru import logger

# 使用默认配置创建一个日志记录器对象
logger = logger.opt()

logger.debug('这是一条debug日志')
logger.info("这是一条信息日志")
logger.warning("这是一条警告日志")
logger.error("这是一条错误日志")

【3.日志级别】共7级

等级方法
TRACElogger.trace()
DEBUGlogger.debug()
INFOlogger.info()
SUCESSlogger.sucess()
WARNINGlogger.warnning()
ERRORlogger.error()
CRITICALlogger.critical()

【4.常见参数配置】

rotation配置:
    # 超过50M自动分割文件
    logger.add('runlog.log', rotation="50 MB",encoding='utf-8')
    # 文件名中加入时间
    logger.add('runlog_{time}.log', rotation="50 MB",encoding='utf-8')
    # 每天固定时间定时创建文件
    logger.add('runtime_{time}.log', rotation='HH:mm',encoding='utf-8')
    # 每隔一段时间创建文件
    logger.add('runtime_{time}.log', rotation='1 week',encoding='utf-8')

compression配置:
    # 保留压缩
    logger.add('runlog_{time}.log',compression='zip',encoding='utf-8')

【5 format 配置日志记录格式化模板】

logger.add('保存日志路径', format="{time:YYYY-MM-DD HH:mm:ss} {level} From {module}.{function} : {message}")

常见字段含义如下:

【6】 高级范例

(1)将日志分成不同级别分别记录

from loguru import logger

logger.add("debug.log", format="{time} {level} {message}", level="DEBUG")
logger.add("info.log", format="{time} {level} {message}", level="INFO")
logger.add("error.log", format="{time} {level} {message}", level="ERROR")

logger.debug("debug message")
logger.info("info message")
logger.error("error message")

(2)让日志同时输出到控制台而不是仅仅在文件中

logger.add(sys.stdout, format="{time} {level} {message}", filter="my_module", level="INFO")

(3)自定义opt对象并输出日志

from loguru import logger

# 创建一个默认配置的日志记录器对象
logger = logger.opt()

# 创建一个输出到文件的处理器
logger.add("mylog.log", rotation="10 MB")

# 使用自定义配置创建一个新的日志记录器对象
mylogger = logger.opt(
    colors=True, 
    format="<green>{time}</green> <level>{message}</level>", 
    level="DEBUG"
)

# 输出日志信息
mylogger.debug("this is a debug log")
mylogger.info("this is an info log")

(4)日志旋转

日志旋转是指按照一定的规则自动分割日志文件,以防止日志文件变得过大。在Loguru中,你可以轻松设置日志旋转:

logger.add("my_log_file.log", rotation="100 MB")  # 每当文件达到100MB时分割

(5) 日志过滤

有时你可能只想记录特定部分的日志。可以通过logger.add()函数的filter参数来添加过滤器。Loguru通过简单的过滤机制使得这成为可能:

logger.add("filtered_log.log", filter=lambda record: "敏感" in record["message"])

又如,我们可以添加一个过滤器来只输出级别为INFO或更高级别的日志信息,如下所示:

from loguru import logger

# 添加输出到终端的处理器,并添加日志过滤器
logger.add(
    handler=sys.stdout, 
    format="<green>{time}</green> <level>{message}</level>", 
    enqueue=True,
    filter=lambda record: record["level"].no >= 20
)

# 使用默认配置创建一个日志记录器对象
logger = logger.opt()
logger.info('hello, world!')
logger.debug('this is a debug log')

(6)异常捕获

Loguru还可以帮助你捕获并记录异常,可以通过logger.catch()方法来捕获异常并记录异常信息。这对于调试非常有用:

@logger.catch
def my_function():
    # 你的代码
    pass

 (7)自定义日志级别

loguru允许我们自定义日志级别,可以通过logger.level()函数来添加自定义日志级别。例如,我们可以添加一个名为TRACE的日志级别,并将其显示

from loguru import logger

# 添加自定义日志级别
logger.level("TRACE", no=5, color="<blue>", icon="🐞")

# 使用自定义日志级别
logger.trace("this is a trace log")

在上面的示例中,我们使用logger.level()函数添加了一个名为TRACE的日志级别,并将其显示为蓝色并带有一个小虫子图标。然后,我们使用logger.trace()方法输出了一条自定义级别的日志信息。
 

(8)绑定参数

logger.bind()方法用于绑定参数到日志记录器中,这些参数可以在日志信息中引用。例如,我们可以使用logger.bind()方法绑定一个user_id参数,并在日志信息中引用该参数,示例如下:

from loguru import logger

# 绑定一个user_id参数
logger = logger.bind(user_id=12345)

# 输出带有user_id参数的日志信息
logger.info("user {user_id} logged in")
在上面的示例中,我们使用logger.bind()方法绑定了一个user_id参数,并使用logger.info()方法输出了一条带有user_id参数的日志信息。

(9)输出日志到socket套接字

from loguru import logger

# 创建一个网络套接字
import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('localhost', 9000))

# 将日志记录器的输出发送到网络套接字中
logger.add(sock.sendall)

# 输出日志信息
logger.info("hello world")

在上面的示例中,我们创建了一个网络套接字,并使用logger.add()方法将日志记录器的输出发送到该套接字中。接着,我们使用logger.info()方法输出了一条日志信息,该信息将被发送到网络套接字中。
【发文章不易,请多多关注、点赞、留言、下载支持!谢谢】

Python日志库loguru实战:从入门到生产级配置与踩坑 日志是软件运行状态的晴雨表,也是排查问题时的第一现场。Python 标准库 logging 功能虽全,但 handler、formatter、level 等繁琐配置常让开发者望而却步,格式串易错、轮转压缩需手写逻辑,排查问题时又缺乏堆栈细节。loguru 作为简洁高效的日志库,以 add/remove 核心 API 将常见需求浓缩为若干参数,支持按大小或时间轮转、保留与压缩,异常捕获自带 backtrace 和变量快照,还能拦截标准库日志统一输出。在生产环境中,合理配置多 sink、JSON 结构化输出、e 阅读详情

相关推荐

Python 日志模块Loguru基本使用和封装使用

Loguru是一个用于Python的日志库,它的设计目标是使日志记录变得简单、快速且易于阅读。简洁的API:Loguru提供了一个简洁的API,使得在Python项目中使用日志变得更加容易。只需导入loguru模块,然后使用其提供的函数来记录日志。自动格式化:Loguru会自动将日志消息格式化为带有时间戳、日志级别和消息内容的字符串,无需手动处理。这使得在查看日志时可以轻松地识别出每条日志的时间和级别。多种输出方式:Loguru支持将日志输出到控制台、文件、Slack、GitHub等不同的地方。

weixin_48183870的博客 3588

Loguru:更为优雅、简洁的Python 日志管理模块

在 Python 开发中涉及到日志记录,我们或许通常会想到内置标准库 —— logging 。虽然logging 库采用的是模块化设计,可以设置不同的 handler 来进行组合,但是在配置上较为繁琐。同时在多线程或多进程的场景下,若不进行特殊处理还会导致日志记录会出现异常。 本文将介绍一个十分优雅、简洁的日志记录第三方库—— loguru ,我们可以通过导入其封装的logger 类的实例,即可直接进行调用。 安装 使用 pip 安装即可,Python 3 版本的安装如下: pip3 install l..

software_test010的博客 6960

Loguru:Python中强大的日志库

除了之前提到的formatter参数外,Loguru还允许您在每个日志处理器上自定义日志的格式化方式。这可以通过设置handler.formatter来实现。logger.add_handler(logger.FileHandler("log.txt", mode="a")) # 添加文件日志处理器logger.set_level(10) # 设置日志级别为infohandler = logger.handlers[0] # 获取文件日志处理器) # 设置日志输出格式,包括时间、名称、级别和消息。

这家伙很懒,什么都没有留下 2673

Loguru基本、进阶使用方法小结。

loguru基本、进阶使用方法,打印显卡型号

baidu_41879652的博客 7574

python-28-日志模块Loguru的应用

日志模块Loguru和logging的对比

qq_20466211的博客 1686

000-Python中loguru包教程目录

本教程将带您从零开始学习Python中的loguru日志库,从基础概念到高级应用,从简单使用到项目实战,帮助您掌握现代化Python日志处理的最佳实践。loguru是一个功能强大且易于使用的Python日志库,它提供了简洁的API、丰富的格式化选项、自动日志轮转、异步处理等特性,是替代标准库logging的优秀选择。

lvjesus的博客 379

Python日志库loguru实战:从入门到生产环境配置详解

日志记录是软件工程中最基础也最关键的一环,它不仅是程序运行状态的记录者,更是线上故障排查时的第一手依据。在Python生态中,标准库logging功能虽完整,但配置繁琐,日志重复、格式混乱、轮转困难等问题常常耗费开发者大量精力。loguru作为一款优秀的第三方日志库,通过极简的API设计,将日志记录的复杂度大大降低。它支持一键配置控制台与文件输出、自动日志轮转与压缩、异步写入、结构化JSON输出,并提供了强大的上下文绑定与异常追溯能力。无论是快速调试还是生产环境的海量日志治理,loguru都能帮助开发者以更

weixin_34098209的博客 251

python3中超级好用的日志模块-loguru模块详解

一. 使用logging模块时 用python写代码时,logging模块最基本的几行配置,如下: import logging logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s') logger = logging.getLogger(__name__) logger.info('this is another debug message') logge

数据知道的博客 12万+

Loguru 终极指南:Python 日志从未如此简单优雅

【代码】Loguru 终极指南:Python 日志从未如此简单优雅。

YAnt的博客 903

Python日志库Loguru教程(最人性化的Python日志模块)

Loguru的基本使用介绍。 python自带的logging模块,需要完成复杂的配置才能很好的使用,基本生产环境都需要进行二次包装。 loguru专门梳理了这方面的问题,可以通过简单直接的配置完成你的需求。

The best way to predict the future is to invent it. 2314

vins-mono保存、重载地图、evo工具测试

下面咱们来对vins-mono的重定位vins-mono官方源码地址:https://github.com/HKUST-Aerial-Robotics/VINS-Mono https://blog.youkuaiyun.com/learning_tortosie/article/details/83182258 运行这条: roslaunch benchmark_publisher publish.launc...

追 1万+

酷炫的python日志库-loguru

​Loguru是一个python的日志库,比logging更简单,好用,功能丰富。官方文档:Overview — loguru documentation安装特征开箱即用,补样板没有处理程序,没有清理程序,没有过滤器:一个函数可以统治所有这些通过旋转/保留/压缩更轻松地记录文件使用大字符串样式的现代字符串格式在线程或主线程中捕获异常漂亮的颜色记录异步、线程安全、多进程安全完整描述性异常根据需要形成日志记录昂贵费用的评估可定制的级别更好的日期时间处理。

seanyang_的博客 2128

纯JS实现SM3加密算法(兼容IE浏览器)

纯JS实现SM3加密,IE、谷歌、火狐等浏览器可以直接使用。

qianpou的博客 7356

Python学习:loguru日志库

中的日志库使用起来有点像,但配置通常比较复杂,构建日志服务器时也不是方便。标准库的替代品是,使用起来就简单的多。默认的输出格式是:时间、级别、模块、行号以及日志内容。不需要手动创建 ,开箱即用,比使用方便得多;另外,日志输出内置了彩色功能,颜色和非颜色控制很方便,更加友好。是非标准库,需要事先安装,命令是:******。**安装后,最简单的使用样例如下: 上述代码输出: 日志打印到文件的用法也很简单,代码如下: 上述代码运行时,可以打印到console,也可以打印到文件中去。默认格式是时间、级别、名称+模块

追风筝的人的专栏 5491

iTunes登录协议逆向与自动化实现

本文详细解析了iTunes登录协议的逆向工程与自动化实现方法,涵盖请求体构造、签名生成和会话管理等关键技术。通过XML结构解析、X-Apple-ActionSignature生成原理及完整登录流程实现,帮助开发者高效完成iTunes自动化登录,提升工作效率。

weixin_26938645的博客 940

1. 在 SAP ABAP 事物码 SEGW 里创建 SAP OData 项目

本文介绍如何在 SAP ABAP 事物码 SEGW 里创建 SEGW 项目,使用工具生成 Runtime 运行时需要的资源。

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

python优秀第三方异步日志库loguru介绍

本文对Loguru库相关主要特性进行了简要概述,如果需要了解其更详细的特性说明,可参考官方github。推荐大家在日常生活中多多使用Loguru库进行日志处理工作。

hubing_hust的专栏 1万+

GhidraMCP:AI驱动的逆向工程革命——让LLM自主操作Ghidra进行自动化分析

(Ghidra Machine Control Protocol)应运而生,它通过将LLM与Ghidra(美国NSA开源逆向工具)结合,实现了AI驱动的自动化逆向工程流程。逆向工程是软件安全、漏洞分析和代码审计的核心环节,但传统方法依赖人工分析,耗时且易出错。未来,随着LLM技术的演进和逆向工程工具的优化,GhidraMCP有望成为安全研究人员和开发者的核心工具,推动逆向工程进入“AI辅助时代”。GhidraMCP通过LLM与Ghidra的深度整合,重新定义了逆向工程的自动化边界。

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 2117

Python日志库loguru——轻松记日志,一个函数搞定

无需样板即可使用,一个函数搞定所有格式,简单实现循环、保留、压缩,完整描述异常,结构化日志保存为JSON格式

XerCis的博客 1万+

北京大学MuMo多模态肿瘤分类模型复现与迁移学习

本项目复现了北京大学MuMo多模态肿瘤分类模型,并针对特定医学影像数据集进行迁移学习。MuMo模型通过整合CT、MRI、PET等多模态医学影像数据,显著提升了肿瘤分类准确性。项目内容包括环境配置(Python 3.8+、PyTorch 1.9+)、数据预处理(DICOM/NIfTI格式处理、强度归一化)、多模态数据集类实现,以及训练验证测试集划分。关键特点是采用MONAI医学影像处理库,实现三维医学影像的标准化预处理流程,并支持多种模态数据的并行加载与联合训练,为后续模型复现和迁移学习奠定基础。

max500600的博客 1241

数据分析案例-2024年裁员数据集可视化分析

本实验数据集来源于Kaggle,原始数据集为2020-2024年裁员数据,共有3577条,12个变量,该数据集提供了不同公司的裁员信息。它包括以下几栏:Company:裁员发生的公司名称。Location_HQ:公司总部位置。Industry:公司所属的行业或部门。Laid_Off_Count:公司解雇的员工数量。Percentage:公司员工被解雇的百分比。Date:裁员发生的日期。Source:信息来源网址。Funds_Raised:公司募集资金的信息。

m0_64336780的博客 1万+

python-三方日志库loguru

日志常见的就是输出到文件。loguru对输出到文件的配置有非常强大的支持,比如支持输出到多个文件,分级别分别输出,过大创建新文件,过久自动删除等等。add方法就相当于给logger添加了一个Handler,它给我们暴露了许多参数来实现Handler的配置add@overload*,loguru.add。

***** 1784

Open3D (C++)球旋转算法(BPA)三维建模

球旋转算法用于点云三维建模的C++代码实现。

点云侠的博客 1771

2025-08-23 Python loguru——日志库

Loguru是一个简化Python日志记录的第三方库,相比标准库logging更加易用且功能丰富。它提供直观的API和默认配置,支持多级别日志输出(DEBUG/INFO/WARNING等),并能动态修改日志级别。Loguru支持多种日志处理方式,包括控制台输出和文件记录,可实现日志轮转、保留策略和自动压缩功能。此外,它还允许自定义日志格式、时间格式和颜色显示,并具备强大的日志过滤功能。通过简单的配置,Loguru就能满足从基础到复杂的各种日志需求,是Python开发者提升日志管理效率的理想选择。

zheliku的博客 1266

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Python的第三方日志库Loguru

日志库

m0_57021623的博客 1494

lwip-2.0.3

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

【Python】loguru 库:轻量、易用且功能强大的 日志库

loguru 是一个轻量、易用且功能强大的 Python 日志库,旨在简化日志记录。它提供了一个直观的 API,支持彩色日志输出、文件写入、异步日志、结构化日志等功能,相比 Python 标准库的 logging 模块,loguru 配置更简单,输出更美观,适合快速开发和复杂应用。

彬彬侠的博客 3036
上一篇: Win10 python环境测试selenium加IE浏览器自动化-踩坑实录
下一篇: Linux环境下仅文本界面安装chrome浏览器及chromedriver
小白用python
博客等级 码龄24年 364粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值