2009-06-10 48 views
0

这可能是一个愚蠢的问题......但我有一个非常大的java程序,我正在使用旧的System.err.println方法进行调试,就像我在其他语言中使用print *一样......更好的方式来管理一般的调试消息?

但过了一段时间,我有这么多人,我不知道如何管理它们(有时我把两次相同的信息与其他信息连接在一起,使其更加困难......)(并且抑制/发现他们到底有时不是微不足道的

我不知道如何更严格...你喜欢一种魔法令牌吗?你总是打印出println的位置...

如果你有任何ja VA工具,我会考虑他们,但最佳做法一般会很好...

回答

7

也许给logging试试吗?

为了将信息输出到标准输出,请让记录器负责记录日志。而且,能够设置不同的日志记录级别将允许记录日志消息的粒度变化。

+0

查看Daniel Moura对特定日志记录框架的回答。 log4j和commons都是java日志中的事实上的标准,并且工作得很好。 – 2009-06-10 15:07:47

0

是的 - 我总是打印打印的位置。甚至可以在C中使用LINE宏。尝试log4j它也打印一切的位置。

0

Eclipse Java开发工具(JDT)对Java调试非常有效。

就我个人而言,我停止使用println进行调试,因为我发现了这个工具。如果你不知道,我认为值得一试。

马努

1

如果你使用Eclipse,你可以使用 “systrace” 模板(类型systrace然后按ctrl +空格)。您可以编辑模板以包含文件名,行号等(尽管如果您移动行数,行号会出错,但在C/C++中没有相当宏)

另一方面,您应该在日志记录,公用日志记录或log4j中使用日志框架(如日志),并且您应该使用DEBUGGER(如Eclipse)进行调试。

5

对于java你应该尝试log4j。使用log4j,您可以为消息设置级别(TRACE,DEBUG,INFO,WARN,ERROR和FATAL)。您可以选择(并更改)日志消息的输出,如在控制台中显示日志,保存在文件中,...

而且您可以配置消息格式(显示小时,显示类的名称,...)。

您应该尝试commons logging,它可以用作log4j等日志工具的界面。

+0

比log4j/commons logging更喜欢logback/slf4j – KitsuneYMG 2009-06-10 14:58:46

相关问题