零配置python日志,安装即用

写了很多年的python日志都是使用内置的logging模块来完成的,使用时都需要经过繁琐的配置。有时候,还可能出现丢失日志的情况,直到loguru的出现。

【阅读全文】

loguru真的是十分的简单的,安装之后直接导入到python代码块中即可直接使用。

1、安装环境

我们还是按照pip的方式来进行安装,默认使用清华大学的镜像站。

pip install loguru -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完成后就可以直接开始使用了。

2、常规日志打印

在控制台打印常规日志时不用添加任何的配置直接使用,使用完成后我们可以来验证一下打印效果。

from loguru import logger

# 使用debug级别打印一行日志

logger.debug('I am debug message.')

下面是我在pycharm上面取下来的日志效果图。

file

可以看一下效果还是令人满意的,这颜色搭配也比较nice,并且日志时间精确到秒级。想要看到的日志信息也基本囊括了。

3、写入日志文件

想写入日志文件也是比较简单不用配置,只需要调用add函数添加文件即可。

# 添加日志文件

logger.add('./message-info.log')

# 打印一行debug日志

logger.debug('I am debug message.')

此时,不仅控制台会出现一行日志,并且在message-info.log文件中也写入了一条dubug日志信息。

若是在写入文件时想要指定自己的输出格式,则可以直接在add函数直接设置即可,同时可以设置输出到日志文件中的级别。

# 按照特定的格式将info级别的日志写入到日志文件中

log = logger.add('./info.log',format='{time} | {level} | {message}',level='INFO')

# 这时,多打印一些info级别的日志

logger.info('I am info message <1>.')

logger.info('I am info message <2>.')

logger.info('I am info message <3>.')

logger.info('I am info message <4>.')

logger.info('I am info message <5>.')

下面是在pycharm控制台打印的日志效果

file

下面是日志文件中的展示效果,跟我们设定的日志格式是一样的。

file

4、停止写入日志文件

在上述过程中我们添加自定义日志格式的日志信息到info.log文件中时特意返回了一个log变量。

这个log其实是返回了一个日志文件的id,在需要停止向该日志文件中写入日志时,只需要调用remove函数将该文件的日志id作为参数传入即可停止向日志文件中写入日志。

# 停止向日志文件中写入日志

logger.remove(log)

此时,后面的 日志文件将不会再写入日志文件中了。

5、滚动记录日志文件

在实际情况中,我们并不是只会有一个日志文件。当一个日志文件超过一定的大小、或是在一个特定的时间周期都可以通过参数的设定来生成新的日志文件继续记录日志。

# 超过10M生成一个新的日志文件

logger.add('info.log',rotation='10 MB')

# 每天凌晨一点生成一个新的日志文件

logger.add('info.log',rotation='01:00')

并且,为了防止日志文件在长时间的记录之后占用磁盘,一般还可以设置30天为周期清理日志文件,这样就又解决了磁盘爆满的问题。

# 设置该日志文件保留的时间为30天

logger.add('info.log',retention='30 days')

通常日志文件如果按照原始的方式存储,那么占用空间还是比较大的。loguru也为我们想到了,就是通过指定文件压缩的格式之后将日志文件进行压缩。

logger.add('info.log',compression='zip')

6、异常日志捕获

在实际coding过程中,特别是生产环境,若是出现一些异常信息没有被写入到日志文件中的情况时是特别难受的。在生产环境中,日志是解决问题的唯一办法。

loguru提供了注解的方式可以将发生异常的函数信息直接写入日志文件中,比如,有这样一个函数在运行过程中发生了异常。

@logger.catch
def func(param):

    return 10 / param

func(0)

上面这个函数在分母是0的时候肯定是会抛出异常的,我们使用注解@logger.catch异常信息就会被写入。

file

同时,在日志文件中也会记录详细的异常信息。

file

【往期精彩】

file

英语没学好到底能不能做coder,别再纠结了先学起来...

数据清洗工具flashtext,效率直接提升了几十倍数!

一个help函数解决了python的所有文档信息查看...

python 自定义异常/raise关键字抛出异常

python 本地音乐播放器制作过程(附完整源码)

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:零配置python日志,安装即用 - Python技术站

(0)
上一篇 2023年4月2日 下午5:24
下一篇 2023年4月2日

相关文章

  • 刚刚发现的可视化动态图库ipyvizzu,太好看了

    ipyvizzu生成的可视化图形是动态的,以前我们生成的可视化图形都是静态不动的。 它是python中的非标准库ipyvizzu,因此使用pip的方式额外安装一下。 【阅读全文】 pip install ipyvizzu 1、小试牛刀 首先,导入绘图相关的库ipyvizzu,以及pandas用来做数据导入操作。 import pandas as pd fro…

    2023年4月2日
    00
  • 怎么用python做一个解压缩小工具,以后再也不用下载各种格式的解压缩软件了…

    经常由于各种压缩格式的不一样用到文件的解压缩时就需要下载不同的解压缩工具去处理不同的文件,以至于桌面上的压缩工具就有三四种,于是使用python做了一个包含各种常见格式的文件解压缩的小工具。 阅读全文 常见的压缩格式主要是下面的四种格式: zip 格式的压缩文件,一般使用360压缩软件进行解压缩。tar.gz 格式的压缩文件,一般是在linux系统上面使用t…

    2023年4月2日
    00
  • 如何将多张图片合成mp4视频格式,并加入背景音乐…

    【阅读全文】 实现的思路:将准备好的图片通过opencv读取出来,并将其设置好帧数等参数后合成为无声视频。最后通过moviepy编辑视频将背景音乐加入到视频中。 开始之前还是需要说明一下非标准库的来源,因为有些库的名称和需要导入模块的名称不一定就是一样的。 import os # python标准库,不需要安装,用于系统文件操作相关 import cv2 #…

    2023年4月2日
    00
  • python 实现超快窗口截图,自动获取当前活动窗口并展示截图

    实现思路是先获取到当前最上面活动的窗口信息,然后提取该窗口的名称信息。 【阅读全文】 之后获取窗口的坐标信息,即左上角的开始坐标及右下角的结束坐标。最后直接截图并将截图的图片进行展示。 其中用到了两个第三方模块,分别是win32gui和Pillow,安装命令如下: pip install Pillow pip install win32gui 将其中使用到的…

    2023年4月2日
    00
  • 英语没学好到底能不能做coder,别再纠结了先学起来

    其实,编程中用到的英文词汇并不多,经常用到的写着写着就记住了。大多数时候只有给变量或者对象起名的时候才会去Google上查。于是,我将经常在coding中用到的词汇总结了一下。 【阅读全文】 A字母开头的英文词汇 Appearance外表assert/assertion异常add添加append附加args/argument参数attribute属性 B字母…

    2023年4月2日
    00
  • 吐血整理python数据分析利器pandas的八个生命周期!

    这里从八个pandas的数据处理生命周期,整理汇总出pandas框架在整个数据处理过程中都是如何处理数据的。 【阅读全文】 也就是从pandas的数据表对象以及数据汇总、数据统计等等直到数据导出的八个处理过程来完成pandas使用的汇总处理。 首先,需要准备好将python非标准库导入进来,除了pandas之外一般伴随数据分析处理使用的还有numpy科学计算…

    Python开发 2023年4月2日
    00
  • python做了个自动关机工具,再也不会耽误我下班啦

    上班族经常会遇到这样情况,着急下班结果将关机误点成重启,或者临近下班又通知开会,开完会已经迟了还要去给电脑关机。 【阅读全文】 今天使用PyQt5做了个自动关机的小工具,设置好关机时间然后直接提交即可,下班就可以直接走人了。 有直接需要.exe可执行应用的话,直接到文末处获取下载链接! 自动关机小工具也支持了清除已经设置好的关机时间,防止已经设置好了关机时间…

    2023年4月2日
    00
  • word文档样式批量处理,久违了

    这里批量处理word文档的操作主要是通过python-docx非标准库实现的,通过定位到文档对象、再到段落、最后到一行文本从而完成针对文字对象的处理。 【阅读全文】 使用pip的方式安装python-docx pip install python-docx 将实现过程中需要的模块导入进来 from docx import Document # 文档处理对象 …

    2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部