【问题标题】:Log.INFO vs. Log.DEBUG [closed]Log.INFO 与 Log.DEBUG [关闭]
【发布时间】:2011-07-28 13:59:53
【问题描述】:

我正在开发一个大型商业程序,并且一直在想用 Log.INFO 和 Log.DEBUG 记录什么样的信息之间感到困惑。

是否有任何标准或规范的 Python 增强提案/Java 标准约定/规则为其他语言定义了每种类型的日志消息包含的内容?

【问题讨论】:

  • 这似乎不像软件中的大多数标准那样基于意见......有关于这个的标准(请参见示例的答案),尽管它们可能因环境而异,与变量名,其中camelcase在java中是标准的,在python中使用下划线(我个人讨厌两者,但有标准,即使我忽略它们,因为“我知道得更好”(TM))

标签: logging


【解决方案1】:

我通常尝试这样使用它:

  • DEBUG:开发人员在尝试调试 问题。
  • INFO:支持人员试图找出给定错误上下文的有趣信息
  • 致命警告:问题和错误取决于损坏程度。

【讨论】:

  • 能否在生产环境中始终启用 INFO,对性能有影响吗?
  • 这取决于..(我喜欢这个答案)您需要考虑的因素是:1. 信息日志行的数量 2. 日志设置(您的日志行在哪里结束?) 3 . 相关系统上的可用处理和 io 电源。
  • 请注意,噪音越大,发现问题就越困难。来自plumberjack.blogspot.be/2010/09/…: > 与 Unix 哲学一样,软件不应该过于冗长,除非需要或被要求。 (为什么我不能引用这个?)
【解决方案2】:

调试:关于程序状态的细粒度语句,通常 用于调试;

信息:关于程序状态的信息性陈述, 表示程序事件或行为跟踪;

警告:描述潜在有害事件或状态的语句 在节目中;

错误:描述应用程序中非致命错误的语句; 此级别经常用于记录处理的异常;

致命:代表最严重错误情况的语句, 假定会导致程序终止。

发现于http://www.beefycode.com/post/Log4Net-Tutorial-pt-1-Getting-Started.aspx

【讨论】:

  • 应该将用户输入触发的错误视为警告还是错误? (即用户名或密码不正确)
  • @Stevoisiak 根据他的回答,我想它应该被视为信息。
【解决方案3】:

还请记住,所有 info()error()debug() 日志记录调用都会在任何应用程序中提供内部文档。

【讨论】:

  • 我认为这是一个很好的观点。例如。 log.info("parse the widget text; ignore contents of 'foo'") 在阅读代码时用作有用的文档,即使它也是一个日志语句。
猜你喜欢
  • 2013-03-11
  • 1970-01-01
  • 1970-01-01
  • 2022-07-01
  • 1970-01-01
  • 2019-02-03
  • 2015-09-12
  • 1970-01-01
  • 2011-05-08
相关资源
最近更新 更多