loguru Python日志神器 | Python 主题月

简介: loguru Python日志神器 | Python 主题月

何为 loguru


可能你已经习惯了使用 python 自带的 logging 模块来进行日志处理,我也不例外。但是今天,我要给大家介绍一个全新的日志处理库 loguru


相比 loggingloguru 更加优雅,简单,日志的输出也更加美观。


安装 loguru


pip install loguru
复制代码


demo


代码:


from loguru import logger
logger.debug('this is a debug message')
logger.info('this is another debug message')
logger.warning('this is another debug message')
logger.error('this is another debug message')
logger.info('this is another debug message')
logger.success('this is success message!')
logger.critical('this is critical message!')
复制代码


控制台输出:


网络异常,图片无法展示
|


怎么样,是不是很优雅,loguru 默认以时间,级别,函数名,模块名,行号,信息的顺序来输出日志。


重定向日志到文件


代码:


from loguru import logger
# 配置重定向路径
logger.add('loguru.log')
logger.debug('this is a redirect to file message')
复制代码


控制台输出:


网络异常,图片无法展示
|


日志文件内容:


网络异常,图片无法展示
|


自定义格式


代码:


from loguru import logger
# 配置重定向路径&格式
logger.add('loguru.log',format='{level} {time} {message}')
logger.debug('this is a redirect to file message')
复制代码


控制台输出:


网络异常,图片无法展示
|


日志文件内容:


网络异常,图片无法展示
|


我们可以看到,在 add 中配置的格式只对写入日志文件的内容生效。


日志轮转


用了 loguru 我们还可以非常方便地使用 rotation 配置,比如我们想一天输出一个日志文件,或者文件太大了自动分隔日志文件,我们可以直接使用 add 方法的 rotation 参数进行配置。


按大小轮转


logger.add('runtime_{time}.log', rotation="500 MB")
复制代码


以上配置可以实现每 500M 轮转一次。


按时间轮转


logger.add('runtime_{time}.log', rotation='00:00')
复制代码


以上配置实现了每天 0 点轮转一次。


按周轮转


logger.add('runtime_{time}.log', rotation='1 week')
复制代码


以上配置实现了每周轮转一次。


优雅的异常处理


代码:


from loguru import logger
# 配置重定向路径&格式
logger.add('loguru.log',format='{time} | {level} | {message}')
logger.debug('test traceback')
@logger.catch
def err(x:int,y:int):
    return 1/(x+y)
if __name__ == '__main__':
    err(0,0)
复制代码


控制台输出:


网络异常,图片无法展示
|


日志文件内容:


网络异常,图片无法展示
|


如上,loguru 帮我们指出了异常出现的位置,方便定位问题,而且优雅的展示了异常的日志。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
数据采集 自然语言处理 算法
如何使用Python的Gensim库进行自然语言处理和主题建模?
使用Gensim库进行自然语言处理和主题建模,首先通过`pip install gensim`安装库,然后导入`corpora`, `models`等模块。对数据进行预处理,包括分词和去除停用词。接着,创建字典和语料库,使用`Dictionary`和`doc2bow`。之后,应用LDA算法训练模型,设置主题数量并创建`LdaModel`。最后,打印每个主题的主要关键词。可以根据需求调整参数和选择不同算法。
26 0
|
1月前
|
消息中间件 测试技术 Python
Python使用多线程解析超大日志文件
Python使用多线程解析超大日志文件
23 0
|
1月前
|
存储 数据库 Python
Loguru:Python中强大的日志库
Loguru:Python中强大的日志库
46 2
|
1月前
|
存储 安全 算法
Python如何在打印日志时隐藏明文密码?
Python如何在打印日志时隐藏明文密码?
35 0
|
1月前
|
监控 Python
Python生成日志文件
Python生成日志文件
22 0
|
2月前
|
监控 IDE 开发工具
Python中的日志记录与调试技巧
Python中的日志记录与调试技巧
|
3月前
|
存储 BI 网络安全
正在等待继续编辑 - Python - 基础知识专题 - 配置文件与日志管理
正在等待继续编辑 - Python - 基础知识专题 - 配置文件与日志管理
22 0
|
3月前
|
Python
python正确使用logging日志的方式
python正确使用logging日志的方式
34 0
|
15天前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
|
22小时前
|
机器学习/深度学习 人工智能 数据可视化
Python:探索编程之美
Python:探索编程之美
9 0