一般来说,管理调试消息的更好方法是什么?

时间:2009-06-10 14:41:29

标签: java debugging language-agnostic

这可能是一个愚蠢的问题......但是我有一个非常大的java程序,我正在使用旧的System.err.println方法进行调试,就像我在任何其他语言中使用print *一样...

但是过了一段时间,我有很多这样的人,我不知道如何管理它们(有时我把两次相同的信息与其他信息联系在一起使得它更难......)......(并最终抑制/找到它们有时并非无足轻重

我不知道如何更加严谨......你是否喜欢某种神奇的象征?你总是打印出println的位置......

如果你有任何java工具,我会考虑它们,但最好的做法一般都会很棒......

5 个答案:

答案 0 :(得分:7)

或许试试logging

而是将消息传递给标准输出,让记录器为您处理日志记录。此外,能够设置不同的日志记录级别将允许记录的日志消息的粒度不同。

答案 1 :(得分:5)

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

您可以配置邮件格式(显示小时,显示班级名称,......)。

您应该尝试使用commons logging作为log4j等日志工具的接口。

答案 2 :(得分:1)

如果您正在使用Eclipse,则可以使用“systrace”模板(键入systrace,然后键入ctrl + space)。您编辑模板以包含文件名,行号等(尽管如果移动行,行号将是错误的,但是没有像C / C ++那样漂亮的宏)

另一方面,您应该使用日志记录框架,例如java的日志记录,公共日志记录或log4j ...用于LOGGING,您应该使用像Eclipse这样的DEBUGGER进行调试。

答案 3 :(得分:0)

是的 - 我总是打印出打印的位置。即使在C中也可以使用 LINE 宏。尝试log4j它还会打印所有内容的位置。

答案 4 :(得分:0)

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

我发现这个工具后,我个人用println停止了调试。如果您不知道,我认为值得一试。

马努