2010-08-09 54 views
5

由于最近的事件,我想弄清楚我应该使用多少调试日志代码一般。一般调试日志实践

我一直在做的是非常谨慎地使用调试日志,只是在我想要一些额外信息或你有什么的情况下。这对我来说很有意义,因为看起来你不应该记录你的代码所做的每件小事情,因为这可能会让你充满大量信息,以至于错过真正重要的事情会更容易(或者因为挖掘而疯狂通过和验证日志)。另一方面,我举了一个例子:我刚开始使用logback/slf4j为我的java项目,并测试我有.xlm文件设置正确,我添加了一个调试日志语句到初始化gui组件的方法。通常情况下,我从来没有把日志语句放在那里,因为当你运行程序时,如果你的GUI组件没有正确初始化,这很明显。然而,这次我运行了程序,看到日志显示gui组件被初始化了两次,即使只显示了其中的一组。一个体面的大小的错误,但是如果没有这些调试语句,我可能不会捕获它。

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

谢谢:)

+0

通过大日志读取一个需要习惯的必要的邪恶。带着这份工作。 :) – euphoria83 2010-08-09 22:45:07

+0

@ euohoria83 - Blech!时间开始精神上准备自己它似乎:P – vimalloc 2010-08-09 22:59:12

回答

3

的几点思考:

  1. 不要只记录所发生的事情,但是要注意记录可用参数/方法的参数等,很容易忽略这一点。
  2. 通过配置禁用调试日志很容易,而不是事后登录。
  3. 不要担心日志开销,直到它真的成为一个问题。
  4. 您可以通过使用AOP框架(春/ AspectJ的等)
+0

是的,这不是我担心的开销/ disabaling特定的日志,就像你说的那样很容易做。这更多的是我用这些日志语句混乱了我的代码。例如,我应该记录任何方法被调用,只是当一些方法被调用,构造函数等?那么当我改变一个给定的变量(这将无法使程序崩溃),我应该记录它以确保它具有预期的值吗?我认为你的第一点总结了它,但我只是想把所有的东西都包裹起来。 – vimalloc 2010-08-09 22:57:28

+0

每当有任何方法被调用时,如何创建一个单独的日志级别?这样你可以把所有的日志语句放在适当的位置,但是根据需要打开和关闭输出。但主要是记录代码路径更改时的一个好主意,就像在“if”语句中一样。 – 2013-04-30 13:19:17

1

我不认为有任何“最佳做法”在决定自动执行某些记录(方法入口/出口)什么/如何记录很多。这是22种情况之一。如果你需要查看日志,那里有“从来没有”足够的信息,但是如果你不这样做,那么“全部”日志就是代码混乱和不必要的运行时间开销。您需要独立判断每个应用程序在哪里绘制线条。

但要记住一点。如果您和您的客户能够破解代码以添加临时调试语句,那么您不需要太多永久性日志记录代码。但是如果你没有选择在(几乎)生产代码上进行黑客调试的话,那么你需要需要一定程度的日志代码,以防万一...