Loguru — Python 记录日志居然能这么强大而简单?

ab04873b28e7d203df3f7e001e1eb014.gif

Loguru 一个能彻底解放你的日志记录器。

它即插即用,具备多种方式滚动日志、自动压缩日志文件、定时删除等功能。

除此之外,多线程安全、高亮日志、日志告警等功能也不在话下。

下面就给大家介绍一下这个强大工具的基本使用方法。

Loguru 安装方式很简单,打开终端输入:

pip install loguru

即可完成安装。

1.即开即用

在Loguru中,如果你需要输出 debug 日志到终端,可以这么做:

from loguru import logger

logger.debug("That's it, beautiful and simple logging!")

其输出自带高亮:

2b740d7c535d4634f73a6426e51e471a.png


如果你需要把日志输出到文件,只需要这样:

from loguru import logger
logger.add("file_{time}.log")
logger.debug("That's it, beautiful and simple logging!")

这样就会在当前运行的文件夹下生成 file_当前时间.log 的日志文件:

1d0f9a20daa2f8d189dfb37a96ecd979.png

2.滚动日志与压缩

使用 Loguru 我们可轻易地实现滚动日志。

按时间滚动

比如按时间滚动,我们只需要在 logger.add 参数中添加一个 rotation 参数:

from loguru import logger
logger.add("file_2.log", rotation="12:00") # 每天12:00会创建一个新的文件
logger.debug("That's it, beautiful and simple logging!")

这样,如果当前时间过了这个设定的时间,它就会生成一个新的日志文件。如果没有则使用原来的日志文件:

10b5f82dfd44ff604243d240cc1d9707.png

如图所示,过了设定的时间,则将原来的 file_2.log 重命名,并添加一个新的 file_2.log 文件。

按大小滚动

除了按时间滚动日志外,Loguru 还可以按日志大小滚动:

from loguru import logger
logger.add("file_1.log", rotation="1 MB") # 滚动大日志文件
logger.debug("That's it, beautiful and simple logging!")

这样,一旦日志文件大小超过 1 MB 就会产生新的日志文件。

压缩日志

如果你不想删除原有日志文件,Loguru 还支持将日志直接压缩:

from loguru import logger
logger.add("file_Y.log", compression="zip") # 压缩日志

3.其他特性

自定义颜色

Loguru 是支持自定义颜色的,如果你不喜欢它默认的颜色,可以这么改:

logger.add(sys.stdout, colorize=True, format="<green>{time}</green> <level>{message}</level>")

类似于HTML标签 <green></green> 标签中间的文字将会被标记为绿色。

多进程安全

Loguru 默认情况下是线程安全的,但它不是多进程安全的。不过如果你需要多进程/异步记录日志,它也能支持,只需要添加一个 enqueue 参数:

logger.add("somefile.log", enqueue=True)

支持Backtrace

对于日志而言,没有错误堆栈的日志是没有灵魂的。Loguru 允许显示整个堆栈信息来帮助你发现问题(包括变量)。

比如下面这个例子:

logger.add("out.log", backtrace=True, diagnose=True) # Caution, may leak sensitive data in prod

def func(a, b):
    return a / b

def nested(c):
    try:
        func(5, c)
    except ZeroDivisionError:
        logger.exception("What?!")

nested(0)

日志将会是这样的:

06549b9108c1ca16c399276b6fbdcc02.png

非常清晰明了。

邮件告警

Loguru 可以和强大的邮件通知模块 notifiers 库结合使用,以在程序意外失败时接收电子邮件,或发送许多其他类型的通知。

import notifiers

params = {
    "username": "you@gmail.com",
    "password": "abc123",
    "to": "dest@gmail.com"
}

# 初始化时发送一封邮件
notifier = notifiers.get_notifier("gmail")
notifier.notify(message="The application is running!", **params)

# 发生Error日志时,发邮件进行警报
from notifiers.logging import NotificationHandler

handler = NotificationHandler("gmail", defaults=params)
logger.add(handler, level="ERROR")

这样配置之后,每次产生 Error 日志,程序都会自动向你的邮箱发送告警,真的极其方便。

除了这些特性外,Loguru 还支持与 Python 原生的 Logging 模块兼容使用,你可以将原始的标准日志记录器记录的所有信息转移到Loguru中。

你还可以基于 Loguru 定制新的日志 Level,定制自己喜欢的结构化数据,详情可见 Loguru 的官方文档:https://github.com/Delgan/loguru


这是我开发的机器人公众号小号,目前增加了天气查询,955公司名单,关注时间查询;后面还会增加图片功能和每日送书抽奖送书活动,以及调戏功能,欢迎来体验,捧场。

一个机器人公众号已经上线,欢迎调戏

 
 
推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案

点阅读原文,看B站我的视频!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Loguru 是一个 Python日志库,它提供了简单易用的 API,可以方便地记录日志信息。它支持多种日志级别,可以输出到控制台或文件中,还可以自定义日志格式。如果你想使用 Loguru,可以通过 pip 安装它,然后在代码中导入 loguru 模块即可。 ### 回答2: loguruPython中的一个开源日志库,它提供了简单易用的API,用于在应用程序中记录和管理日志信息。它是从Hazardous库衍生而来,设计的目标是尽可能的提供简洁且强大日志功能。 loguru库的特点之一是其简单而直观的API。它提供了一些装饰器和函数,可以很容易地在代码中插入日志语句。同时,它支持强大的格式化功能,可以根据需要灵活地配置日志输出的格式。loguru还支持多个处理器,可以将日志信息输出到不同的地方,如文件、终端和网络等。 此外,loguru也提供了一些功能来帮助开发者更好地调试和分析代码。例如,它支持将函数名和文件名包含在日志信息中,方便定位问题所在。它还可以在日志中包含源代码的行号,以帮助开发者更快地定位到具体的代码位置。 在使用loguru时,开发者不需要担心线程安全的问题,因为它已经内置了线程安全的机制。同时,它还提供了更好的性能效率,以及对大型日志文件的处理能力。另外,loguru还支持自动归档功能,可以定期将日志文件拆分为多个较小的文件,便于管理和存档。 总的来说,loguru是一个功能强大且易于使用的Python日志库。无论是在小型项目中还是在大型应用中,loguru都能帮助开发者更好地记录和管理日志信息,提高代码的可维护性和可调试性。 ### 回答3: loguru 是一种流行的 Python 日志库,它提供了简单易用的界面来记录和管理日志。 使用 loguru,我们可以轻松地创建一个日志器并配置它的输出目标、级别以及其他选项。例如,我们可以将日志输出到控制台、文件、网络套接字等不同的目标。 loguru 还提供了灵活的日志级别控制,可以根据不同的需求设置不同的日志级别。这使得在调试过程中,我们可以只输出关键信息,并将大部分详细的日志隐藏起来,从而提高了调试的效率。 另外,使用 loguru 还能方便地处理异常日志,我们可以捕获异常并将其记录日志当中,以便后续分析和排查问题。 loguru 还有其他一些功能,比如自动旋转日志文件、日志格式自定义、线程安全等。这些功能使得 loguru 在实际开发中非常实用和方便。 总结来说,loguru 是一个功能强大、易用性优秀的 Python 日志库,它提供了丰富的功能和灵活的配置选项,帮助开发者更好地记录和管理日志,提高了调试和排查问题的效率。无论是在个人项目中,还是在企业级应用中,loguru 都是一个值得尝试的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值