小资小资喜悦#1:loguru

今天,我们将讨论为什么有人需要编写替代标准logging python记录器的方法,以及如何使用该方法。



好恶心!


在使用Python logging ,马上就想到了logging


logging是紧密嵌入Python生态系统中的强大,稳定的解决方案。 您可以在必要时将其导入,进行一些操作-就是这样,这就是您可以编写令人垂涎的logger.exception('--') 。 并且'--'条目将最终以某种日记形式出现。


在那之后,通常开发人员会对'--'确切来源以及该记录的结果感兴趣。 程序员进入记录器的设置,并开始使用各种选项的堆来教他如何将记录正确地推入文件,数据库,错误收集器以及可能存储日志记录的其他位置。


记录器的配置会以繁琐但几乎可以理解的方式开始:


 LOGGER_CONFIG = { "version": 1, "disable_existing_loggers": False, "formatters": { "simple": { "format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s" } }, "handlers": { "console": { "class": "logging.StreamHandler", "level": "DEBUG", "formatter": "simple", "stream": "ext://sys.stdout" }, }, "root": { "level": "INFO", "handlers": ["console"] } } 

这样的配置正朝着更加难以理解的方向发展。 通常配置的logging配置,具有不同级别的日志记录,不同的消息收集器和日志文件的轮换,是一个沉重的文本,确实很难挖掘。


为了不受伤甚至令人愉快


一旦几个程序员终于厌倦了挖掘(和犯错)大量logging配置选项。 这些工程师同时编写了自己的记录器,非常简单而且功能非常强大。 这个东西叫做Loguru


这是该库的演示,它详尽地展示了如何通过两行代码来设置功能强大的应用程序中的日志记录。



为什么您应该考虑使用loguru代替logging


  • 简单性。 关于这个,我已经在上面说过了,但是我会再说一遍-正确配置loguru比进行logging更容易。
  • 清除配置日志文件轮换和存档旧记录的方法。
  • 箱子中已经包含了电池堆-消息颜色,格式,将故障通知发送到电子邮件,函数调用堆栈以及崩溃报告以及许多其他便利设施。
  • 而且,当然是异步的! 是的,Python世界朝着异步/等待方向发展,所有耗电编程的这种构造转变显然需要异步记录器。

当然,您必须付出一切。 而使用loguru则需要支付两件事:


  • 列巴还比较年轻,可能会有惊喜。
  • 作者承诺与logging完全兼容,但是您可能会在将loguru与第三方库进行logging连接时遇到问题。 例如,在为Sentry或Airbrake附加处理程序时。

尽管存在这些潜在的困难,但loguru值得在您的下一个项目中进行仔细的测试和捆绑。

Source: https://habr.com/ru/post/zh-CN454436/


All Articles