如果用python
写一些简单或者临时用的小工具,代码只是几个函数,一个py文件的话,
那么,你不用考虑日志库,想显示什么信息,直接用print
就可以了。
不过,对于稍微具规模的程序(特别是多线程的服务端程序),特别是GUI
的程序,
如果没有日志的话,不仅开发的过程中难以调试,实际部署之后也无法在客户使用出现问题时及时对应。
Python
标准库中虽然有logging
模块,但是功能相对简陋。
本篇介绍几个python
中比较知名日志库,需要给自己的代码添加日志时,可以参考。
日志不是软件功能的必需品,但是对于软件开发和维护具有至关重要的作用,其主要的作用在于:
良好的日志实践可以提高软件的可靠性、可维护性和安全性。
不过,需要注意的是,过度日志记录可能会对系统性能产生影响,因此还需要合理平衡日志的详细程度和系统性能。
loguru
是一个旨在通过简单而直观的API
,使日志记录变得简单和愉快。
安装方式:
$ pip install loguru
loguru
开箱即用,和使用标准库一样方便
loguru
的一些主要特点包括:
loguru
并调用相应的函数即可,无需复杂的配置。structlog
的设计目标是为结构化日志输出提供简洁而强大的接口。
结构化日志输出与传统的文本日志相比,可以提供更丰富、更易于解析和处理的信息。
安装方式:
$ pip install structlog
structlog
的一些主要特点包括:
Python
字典来记录日志,方便添加各种类型的数据(如字符串、数字、异常对象等)到日志中,并使这些数据在后续处理时仍然保持其原始结构和类型。Python
的标准库logging
兼容,用户可以轻松地将现有的logging
代码迁移到structlog
,或者同时使用这两个库。API
设计得简洁明了,使得用户可以快速上手并有效地使用它。logbook
的设计初衷是用来取代Python
的标准库日志模块logging
。
安装方式:
$ pip install Logbook
与标准库中的日志库相比,logbook
有以下一些优点:
logging
模块的复杂API,logbook
提供了更简洁、易用的API。logbook
的默认设置比logging
更合理。logbook
可以方便地记录上下文信息,如请求ID、用户ID等。而标准库logging
模块则需要额外配置才能实现类似功能。logbook
支持多种日志处理器,可以轻松地将日志发送到文件、控制台、邮件、数据库等。logbook
在性能上经过优化,相较于logging
模块,其对应用程序的性能影响较小。logbook
会自动集成异常的堆栈追踪信息,无需手动添加。而logging
模块则需要通过配置来实现此功能。logbook
是线程和进程安全的,可以在多线程或多进程环境中安全地使用,而logging
模块在多线程环境下可能需要额外的同步措施。logbook
的设计使得它易于扩展和定制。顾名思义,python-json-logger
是一个用于记录JSON
格式日志的库。
使用 JSON
格式,是为了让日志更容易被各种编程语言读取。
安装方式:
$ pip install python-json-logger
python-json-logger
的主要特点包括:
Python
标准库的logging
模块兼容。以上4个日志库是目前github
上最受欢迎的python
日志库,其中loguru
的star数远远高于其他3个。
不过,选择哪个库,它的star数并不是唯一的标准,是否符合我们的应用场景更加重要。
对于loguru
来说,它适用于需要简单、轻量级和易于使用的日志功能的场景。
若你的项目是小型到中型的规模,日志需求比较简单,且开发者也不想花费过多时间在日志配置上,
那么,loguru
是一个很好的选择,它提供了合理的默认配置。
对于structlog
来说,它适用于需要高度结构化日志的场景。
如果你的项目是大型、分布式系统或微服务的架构,其中日志需要在多个组件和服务之间进行传递和处理,
那么,structlog
是一个很好的选择。
对于logbook
来说,它适用于需要高度灵活和可配置日志功能的场景。
如果你的项目是中型到大型的规模,其中需要对日志进行更精细的控制和管理,
或者对于需要替换标准库logging
并寻求更多功能和改进性能的项目来说,
logbook
是一个很好的选择。
对于python-json-logger
来说,它适用于需要以JSON
格式记录日志的场景。
如果你的项目需要将日志与其他系统或服务进行集成(特别是那些使用JSON
作为数据交换格式),
或者说随时需要对日志进行分析、监控或审计时,python-json-logger
是一个很好的选择。
小编是一名Python开发工程师,自己整理了一套 【最新的Python系统学习教程】,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。
保存图片微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
如果你是准备学习Python或者正在学习,下面这些你应该能用得上:
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
用通俗易懂的漫画,来教你学习Python,让你更容易记住,并且不会枯燥乏味。
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
👉CSDN大礼包:《Python入门资料&实战源码&安装工具】免费领取(安全链接,放心点击)