零配置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日

相关文章

  • word文档样式批量处理,久违了

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

    2023年4月2日
    00
  • python-turtle绘制雪容融,已打包成exe可直接运行

    之前我们放出了冰墩墩绘制的源代码,雪容融的绘制却是一直没有。今天在逛论坛的时候终于发现有大佬写出来了,给大佬递茶!先来看看绘制的效果如何,个人觉得还是很惟妙惟肖的,哈哈哈~ 阅读全文 由于本文主要是通过图片的方式来展示代码块的实现过程的,需要完整源代码请前往文末查看源代码的获取方式。 话不多说,我们直接进入主题,说明一下我们改造以后的源代码,绘图的非标准库这…

    2023年4月2日
    00
  • python实现excel数据与mysql数据库互通有无

    【阅读全文】 python在制作一些小工具上本身就有着得天独厚的优势,大多数非标准库的应用只需要进行简单的安装即可使用。 比如:使用python将excel中的数据导入到mysql数据库表中,或是将mysql数据库表中的数据直接导出为excel都只需要简单的几行代码就可以完成,假如使用Java来做这件事强那可就有些复杂了呢。 话不多说,接下来直接进入正题..…

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

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

    2023年4月2日
    00
  • Python 读取PDF文件为文本字符并转换为音频

    【阅读全文】 设计思路:首先通过PyPDF2非标准库提供的接口函数将PDF文件中的文本提取出来,然后,再使用pyttsx3非标准库将文本转换为音频文件。 使用pip的方式安装两个非标准库PyPDF2、pyttsx3。 pip install PyPDF2 -i https://pypi.tuna.tsinghua.edu.cn/simple/ pip ins…

    2023年4月2日
    00
  • 知识汇总:python办公自动化应该学习哪些内容

    【阅读全文】 当前python自动化越来越受到欢迎,python一度成为了加班族的福音。还有大部分人想利用python自动化来简化工作,不知道从何处下手,所以,这里整理了一下python自动化过程中的各种办公场景以及需要用到的python知识点。 Excel办公自动化 python 针对excel表格处理的非标准库应该是最多的,这也是把excel办公自动化放…

    2023年4月2日
    00
  • 数据清洗工具flashtext,效率直接提升了几十倍数

    在平常的一些的小规模的数据的过滤、清洗过程中使用最多的就是正则表达式,但是随着数据规模的增大,正则表达式就显得有些心有余力不足了。 【阅读全文】 正则表达式在一个 10k 的词库中查找 15k 个关键词的时间差不多是 0.165 秒。但是对于 Flashtext 而言只需要 0.002 秒。因此,在这个问题上 Flashtext的速度大约比正则表达式快 82…

    2023年4月2日
    00
  • python做一个微型美颜图片处理器,十行代码即可完成

    【阅读全文】 图片美颜处理的实现思路就是使用cv2非标准库对图片做双边过滤,使其达到美颜的效果。 将cv2非标准库导入到代码块中 import cv2 准备好需要美颜的图片,源图片是在百度上面找的用来做测试用。 读取准备好的原始图片 source = cv2.imread(“source.jpeg”) 对准备好的原始图片执行双边过滤 target = cv2…

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