一般调试日志实践

时间:2010-08-09 22:39:08

标签: java debugging logging

由于最近的事件,我试图弄清楚我应该为代码使用多少调试日志。

我一直在做的是非常谨慎地使用调试日志,并且只是在我想要一些额外信息或者你有什么的情况下。这对我来说很有意义,因为看起来你不应该记录你的代码所做的每一件小事,因为这可能会让你充斥着如此多的信息,以至于更容易错过一些真正重要的事情(或者从挖掘中发疯通过并验证日志)。

另一方面,我举了一个例子:我刚刚开始在我的java项目中使用logback / slf4j,并测试我正确设置了.xlm文件我在方法的末尾添加了一个调试日志语句初始化gui组件。通常情况下,我从来没有在那里放置日志语句,因为当你运行程序时你的gui组件没有正确初始化是非常明显的。然而这次我运行程序,并且低并且看到日志显示gui组件被初始化两次,即使它们只显示了一组。一个体面的大小的bug,但是如果没有那些调试语句,我可能不会抓到它。

所以我的问题:调试日志时是否有“最佳实践”?在信息日志,异常,错误等方面,我已经看到了许多最佳实践问题,但在调试日志方面却没有找到太多。

谢谢:)

2 个答案:

答案 0 :(得分:3)

一些想法:

  1. 不要只记录正在发生的事情,而要注意记录可用的参数/方法参数等。很容易忽略这一点。
  2. 通过配置禁用调试日志记录很容易,而不是事后登录。
  3. 在真正成为问题之前,不要担心记录开销。
  4. 您可以使用AOP框架(Spring / AspectJ等)自动执行某些日志记录(方法的进入/退出)。

答案 1 :(得分:1)

我认为在决定记录的内容/数量方面没有任何“最佳做法”。这是第22次抓捕的情况之一。如果你需要查看日志,那里有“永不”的足够信息,但如果不这样,那么“全部”日志记录只是代码混乱和不必要的运行时开销。您需要单独判断每个应用程序的绘制线的位置。

但要记住一点。如果您和您的客户能够破解代码以添加临时调试语句,那么您就不需要那么多永久性日志记录代码。但是如果你没有选择攻击(几乎)生产代码来调试东西,那么你需要一定级别的日志代码,以防万一...