零配置python日志,安装即用

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

【阅读全文】

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

1、安装环境

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

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

您可以在安装完成后直接开始使用它。

[En]

You can start using it directly after the installation is complete.

2、常规日志打印

在控制台打印常规日志时,无需添加任何配置即可直接使用。使用后,可以对打印效果进行验证。

[En]

Use it directly without adding any configuration when printing regular logs in the console. After using it, we can verify the printing effect.

from loguru import logger

使用debug级别打印一行日志

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

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

零配置python日志,安装即用

可以看一下效果还是令人满意的,这颜色搭配也比较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 .')

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

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

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

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

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

零配置python日志,安装即用

以下是日志文件中显示的效果,与我们设置的日志格式相同。

[En]

The following is the effect shown in the log file, which is the same as the log format we set.

零配置python日志,安装即用

4、停止写入日志文件

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

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

停止将日志写入日志文件<details><summary>*<font color='gray'>[En]</font>*</summary>*<font color='gray'>Stop writing logs to the log file</font>*</details>

logger.remove(log)

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

5、滚动记录日志文件

实际上,我们不仅仅有一个日志文件。当日志文件超过一定大小时,或在特定时间段内,可以通过设置参数来生成新的日志文件,以继续日志记录。

[En]

In practice, we don’t just have one log file. When a log file exceeds a certain size, or in a specific time period, a new log file can be generated by setting parameters to continue logging.

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

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

每天凌晨1点生成一个新的日志文件<details><summary>*<font color='gray'>[En]</font>*</summary>*<font color='gray'>Generate a new log file at 1: 00 a. M. every day</font>*</details>

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

而且,为了防止日志文件在长时间录制后占用磁盘,一般可以设置30天来清理日志文件,解决了磁盘已满的问题。

[En]

Moreover, in order to prevent the log files from occupying the disk after a long period of recording, you can generally set 30 days to clean up the log files, which solves the problem of full disk.

设置日志文件保留30天<details><summary>*<font color='gray'>[En]</font>*</summary>*<font color='gray'>Set the log file to be retained for 30 days</font>*</details>

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异常信息就会被写入。

零配置python日志,安装即用

同时,日志文件中还记录了详细的异常信息。

[En]

At the same time, detailed exception information is also recorded in the log file.

零配置python日志,安装即用

【往期精彩】

零配置python日志,安装即用

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

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

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

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

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

Original: https://www.cnblogs.com/lwsbc/p/16436006.html
Author: Python集中营
Title: 零配置python日志,安装即用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/499157/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球