0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python中Loguru的安装方式

python爬虫知识分享 来源:python爬虫知识分享 作者:python爬虫知识分享 2022-06-22 15:27 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

pip installloguru

1、即开即用

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

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

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

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

2、滚动日志与压缩

按时间滚动

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

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

按大小滚动

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

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

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

压缩日志

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

fromloguru importlogger
logger.add("file_Y.log", compression="zip") # 压缩日志

3、其他特性

自定义颜色

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

logger.add(sys.stdout, colorize=True, format="{time}{message}")

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

多进程安全

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

deffunc(a, b):
  returna / b

defnested(c):
  try:
 func(5, c)
  exceptZeroDivisionError:
 logger.exception("What?!")

nested(0)
pYYBAGKywweAM70AAABKXGuCJsE453.png

非常清晰明了。

邮件告警

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

importnotifiers

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

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

# 发生Error日志时,发邮件进行警报
fromnotifiers.logging importNotificationHandler

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

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

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

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2851

    浏览量

    53489
  • 日志
    +关注

    关注

    0

    文章

    153

    浏览量

    11103
  • python
    +关注

    关注

    59

    文章

    4891

    浏览量

    90395
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    [VirtualLab] 使用Python运行VirtualLab Fusion光学仿真

    的存档可以从我们的网站上下载。 配置Python环境 确保计算机上安装Python*。请注意,应该勾选“将python.exe添加到路径”的选项进行
    发表于 03-31 09:39

    如何在 VisionFive 上使用 Python 包?

    确保执行以下步骤: 将 Fedora OS 刷新到 Micro-SD 卡,如将 Fedora OS 刷新到 Micro-SD 卡部分的VisionFive 单板计算机快速入门指南. 登录
    发表于 03-30 08:28

    如何在 Vision Five 2 上安装 python 库?

    这可能是一个完全愚蠢的问题,但我如何在 Vision Five 2 上安装 python 库。 使用该命令后,它给了我这个错误。 默认为用户安装,因为普通站点包不可写 错误:找不到满足要求
    发表于 03-06 07:51

    探针电池座安装方式的差异与类型

    探针,也称作弹簧针连接器,常用于手机这种小型电子产品。探针的主体结构由针头、弹簧、针管三部分构成。依据安装方式的差异,探针可划分为以下几种类型。
    的头像 发表于 02-26 14:24 304次阅读
    探针电池座<b class='flag-5'>安装</b><b class='flag-5'>方式</b>的差异与类型

    安装 Python VisionFive_GPIO失败是哪里出了问题?

    尽管按照最新的文档,我在安装 VisionFive.gpio 包时仍然收到错误 sudo apt 安装 libxml2-dev libxslt-dev python3 -m pip 安装
    发表于 02-11 06:13

    没有专利的opencv-python 版本

    所有 官方发布的 opencv-python 核心版本(无 contrib 扩展)都无专利风险——专利问题仅存在于 opencv-contrib-python 扩展模块的少数算法(如早期 SIFT
    发表于 12-13 12:37

    Termux调试圣诞树Python代码

    python --version 如果输出Python 3.x.x(比如3.11.4),说明安装成功。 二、代码编写(两种方式可选) 方式
    发表于 12-09 09:02

    Python调用API教程

    两个不同系统之间的信息交互。在这篇文章,我们将详细介绍Python调用API的方法和技巧。 一、用Requests库发送HTTP请求 使用Python调用API的第一步是发送HTTP请求,通常
    的头像 发表于 11-03 09:15 1274次阅读

    Python 给 Amazon 做“全身 CT”——可量产、可扩展的商品详情爬虫实战

    一、技术选型:为什么选 Python 而不是 Java? 结论: “调研阶段用 Python,上线后如果 QPS 爆表再考虑 Java 重构。” 二、整体架构速览(3 分钟看懂) 三、开发前准备(5
    的头像 发表于 10-21 16:59 662次阅读
    用 <b class='flag-5'>Python</b> 给 Amazon 做“全身 CT”——可量产、可扩展的商品详情爬虫实战

    MA35-RTT如何安装 Python 和 Libusb (Windows) ?

    MA35-RTT:如何安装 Python 和 Libusb (Windows) ?
    发表于 09-03 08:30

    termux调试python猜数字游戏

    用termux做一个猜数字游戏 下面是在Termux创建猜数字游戏的步骤及完整实现方案,结合Python实现(最适配Termux环境): ? 一、环境准备(Termux基础配置) 1.
    发表于 08-29 17:15

    termux如何搭建python游戏

    Pygame),确保已安装`clang`编译器:`apt install -y clang` 3. 权限问题:若需访问手机文件,安装`termux-setup-storage`并授权存储访问权限。 通过以上步骤,即可在Termux
    发表于 08-29 07:06

    Python字符串逆序有几种方式,代码是什么

    对于一个给定的字符串,逆序输出,这个任务对于python来说是一种很简单的操作,毕竟强大的列表和字符串处理的一些列函数足以应付这些问题 了,今天总结了一下python对于字符串的逆序输出的几种常用
    的头像 发表于 08-28 14:44 1378次阅读

    linux虚拟环境调用Linux 版matlab编译的python库时出错

    、readme.txt、 requiredMCRProducts.txt、init.py、CAO_python.ctf。 在linux环境按照以下步骤安装matlab runtime2018b: ① cd到MCR
    发表于 07-18 10:40

    基础篇3:掌握Python的条件语句与循环

    不同的条件执行不同的代码块。Python的条件语句主要使用if、elif(else if的缩写)和else关键字。 if语句 最简单的条件语句是if语句,它的工作方式如下: 复制代码 if 条件表达式
    发表于 07-03 16:13