当前位置: 首页 > 后端技术 > Python

Loguru—Python日志记录可以如此强大和简单?

时间:2023-03-25 22:10:43 Python

Loguru一个可以彻底解放你的记录器。即插即用,具有多种方式滚动日志、自动压缩日志文件、定时删除等功能。此外,还包括多线程安全、高亮日志、日志告警等功能。下面简单介绍一下这个强大工具的基本用法。Loguru的安装方法非常简单。打开终端,输入:pipinstallloguru,完成安装。1.准备在Loguru中使用,如果需要将debug日志输出到终端,可以这样做:fromloguruimportloggerlogger.debug("That'sit,beautifulandsimplelogging!")输出自带高亮:如果您需要将日志输出到一个文件,只需执行以下操作:fromloguruimportloggerlogger.add("file_{time}.log")logger.debug("就是这样,漂亮而简单的日志记录!")这将在current文件夹下生成file_currenttime.log的日志文件:2。滚动日志和压缩使用Loguru,我们可以轻松实现滚动日志。按时间滚动比如按时间滚动,我们只需要在logger.add参数中添加一个rotation参数即可:fromloguruimportloggerlogger.add("file_2.log",rotation="12:00")#将被创建每天中午12:00新建一个文件logger.debug("就是这样,漂亮又简单的日志记录!")这样如果当前时间过了这个设定的时间,就会生成一个新的日志文件。如果没有,则使用原来的日志文件:如图所示,在设置的时间后,将原来的file_2.log重命名,添加一个新的file_2.log文件。按大小滚动Loguru除了按时间滚动日志外,还可以按日志大小滚动:fromloguruimportloggerlogger.add("file_1.log",rotation="1MB")#Rolllargelogfileslogger.debug("That'sit,漂亮又简单的日志记录!”)这样,一旦日志文件大小超过1MB,就会生成一个新的日志文件。压缩日志如果不想删除原始日志文件,Loguru也支持直接压缩日志:fromloguruimportloggerlogger.add("file_Y.log",compression="zip")#压缩日志3.其他特性自定义colorLoguru是支持自定义颜色的,如果你不喜欢它的默认颜色,你可以这样改:logger.add(sys.stdout,colorize=True,format="{time}}{message}")类似于HTML标签标签中间的文本会被标记为绿色。多进程安全Loguru默认是线程安全的,但不是多进程安全的。不过,如果你需要多进程/异步日志记录,它也可以支持,只需添加一个enqueue参数:logger.add("somefile.log",enqueue=True)支持Backtrace日志,没有错误堆栈的日志是没有灵魂的。Loguru允许显示整个堆栈跟踪以帮助您发现问题(包括变量)。例如下面的例子:logger.add("out.log",backtrace=True,diagnose=True)#注意,可能会泄露proddeffunc(a,b)中的敏感数据:returna/bdefnested(c):try:func(5,c)exceptZeroDivisionError:logger.exception("What?!")nested(0)日志会是这样的:很清楚。电子邮件警报Loguru可以与强大的电子邮件通知模块notifiers库结合使用,以在程序意外失败时接收电子邮件,或发送许多其他类型的通知。importnotifiersparams={"username":"you@gmail.com","password":"abc123","to":"dest@gmail.com"}#初始化时发送邮件notifier=notifiers.get_notifier("gmail")notifier.notify(message="Theapplicationisrunning!",**params)#当出现Error日志时,发送邮件提醒fromnotifiers.loggingimportNotificationHandlerhandler=NotificationHandler("gmail",defaults=params)logger.add(handler,level="ERROR")这样配置后,每次产生Error日志时,程序都会自动向你的邮箱发送告警,真是方便极了。除了这些特性,Loguru还支持与Python原生的Logging模块兼容使用,你可以将原有标准Logger记录的所有信息都转移到Loguru上。您还可以基于Loguru自定义新的日志级别,自定义您喜欢的结构化数据。这是我们文章的结尾。如果喜欢今天的Python实战教程,请关注公众号Python编程学习圈,了解更多编程技术干货,送“J”获取海量学习资料!