【发布时间】:2013-11-28 03:45:48
【问题描述】:
好的,所以我有一个非常大的 Java 项目,我已经从事了多年(如果你必须知道的话,一个游戏)。
不幸的是,一条神秘的消息已开始打印。无论搜索多长时间,我都无法确定消息的位置。
我知道您可以覆盖 println 方法,我很好奇是否可以将某种调试信息附加到正在打印的消息中?就像打印它的行或文件一样?我尝试在 Google 上搜索此问题,但问题太详细了,我无法找到答案。
更糟糕的是,信息非常模糊。它只是“-1”。
至少我现在知道使用适当的记录器而不是简单地 println()。
【问题讨论】:
-
有什么理由不显示 grep 吗?我的第一个想法是使用某种模拟框架来拦截函数调用并打印堆栈跟踪。
-
希望您的非常大的项目以允许单元测试和模拟的模块化方式编写。否则我不知道你应该如何解决这个问题,除了重新编写它以便它是可测试的。您的问题没有提供足够的信息,无法直接回答。
-
我假设您使用的是 IDE?例如,在 Eclipse 中,您可以在所有项目空间中搜索方法调用或纯字符串(如 -1),我会搜索字符串“-1”,在某个地方,某个地方必须定义它,您可以从那里跟踪它.除非它来自外部 .jar,否则很难找到它。
-
谢谢亚当,我会调查的。 HovercraftFullOfEels,这不是一个超级大的项目,只是大到足以阻碍我找到它的能力。 arynaq 是的,我使用 Eclipse。我已经尝试过了,但我没有更多选择可以尝试,所以我可能不得不继续这样做。
-
可以在println(String x)方法imgur.com/Z4zKTLy中放一个条件断点@