python - 如何处理Python日志记录中的常规消息?

标签 python logging

Python 的日志记录 工具具有多个严重级别:

  • 严重
  • 错误
  • 警告*
  • 信息
  • 调试
  • NOTSET

*根记录器默认为警告。


在此设置中如何处理常规消息?

“常规消息”是指那些不是警告但应始终向用户显示的消息。

一个例子可以是:

循环文件列表并对它们应用累积操作。 “常规消息”可以是“当前正在处理 {filename}”。 INFO 级别可能保存文件处理的各个子步骤的状态,用户大多数时候可能对此不感兴趣。警告级别可能存在潜在问题,例如两个文件包含同一 key 的不同条目。

我认为我想要一个介于 WARNING 和 INFO 之间的级别,可以称为 NOTICE、NOTE、REGULAR 或类似名称。这个级别将是我的默认级别,而不是警告。为什么日志记录不提供这样的级别?

我知道我可以相当容易地添加这样的级别,但日志记录手册强烈 argues against custom levels 。因此,我认为必须有一种规范的方式来记录上面的消息......


编辑:只是为了澄清投票结束是“基于意见”:我想知道日志记录应该如何使用 坚持给定的一组级别和约定。因此,我认为正确的答案不一定是意见,而应该是使用该模块的最佳实践。

手册指出“定义您自己的级别是可能的,但不是必需的,因为现有级别是根据实践经验选择的”。在上面的示例中,我似乎缺少一个级别:“常规消息”或者 - 如果我切换到表示“常规消息”的 INFO - 类似于用户的“详细信息”。

最佳答案

日志消息并未真正为用户缩进。您所描述的听起来更像是常规输出。然而,至少有两种可能的方法来解决这个问题。要么将常规消息设置为 INFO 级别,然后将不那么有趣的消息移至 DEBUG 级别,或者使用 log filter 。引用文档:

Filters can be used by Handlers and Loggers for more sophisticated filtering than is provided by levels.

关于python - 如何处理Python日志记录中的常规消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57391527/

相关文章:

python - 在Maya中,使用Python或Mel,如何查找没有UV壳的对象

python - 如何获取与当前运行的 ipython 内核关联的 ipython 笔记本标题

python - 如何迭代列表列表并更改元素值?

python - Django 不向电子邮件发送错误消息

python - Flask: orjson 代替 json 模块进行解码

C++ cout 类函数,将数据写入文件(日志记录)

logging - 我可以在 logback 中禁用附加程序吗?

python - 登录 csv 文件的正确方法是什么?

python - 使用 nginx、uwsgi、flask 轻松进行应用程序日志记录/调试?

java - 如何检查是否加载了 log4j.properties?