写了很多年的python日志都是应用内置的logging模块来实现的,应用时都须要通过繁琐的配置。有时候,还可能呈现失落日志的状况,直到loguru的呈现。

【浏览全文】

loguru真的是非常的简略的,装置之后间接导入到python代码块中即可间接应用。

1、装置环境

咱们还是依照pip的形式来进行装置,默认应用清华大学的镜像站。

pip install loguru -i https://pypi.tuna.tsinghua.ed...

装置实现后就能够间接开始应用了。

2、惯例日志打印

在控制台打印惯例日志时不必增加任何的配置间接应用,应用实现后咱们能够来验证一下打印成果。

from loguru import logger# 应用debug级别打印一行日志logger.debug('I am debug message.')

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

能够看一下成果还是令人满意的,这色彩搭配也比拟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控制台打印的日志成果

上面是日志文件中的展现成果,跟咱们设定的日志格局是一样的。

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.catchdef func(param):    return 10 / paramfunc(0)

下面这个函数在分母是0的时候必定是会抛出异样的,咱们应用注解@logger.catch异样信息就会被写入。

同时,在日志文件中也会记录具体的异样信息。

【往期精彩】

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

数据荡涤工具flashtext,效率间接晋升了几十倍数!

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

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

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