2

这似乎是一个简单的问题,但我可以得到它。在其中一次采访中被问到“你将如何确保编写 Java 程序的人正在放置正确的日志消息”

我说我们必须在代码审查期间检查这一点。对此,他说有一种方法可以让您强制进行日志记录。

我没有答案。有没有办法做到这一点?

任何帮助都会很棒

4

4 回答 4

3

您可以编写一个包含日志记录方法的抽象类。抽象实现引发错误。在单元测试期间,只需检查方法是否抛出错误,如果是,则测试失败。

但是,这很容易出错,因为您的程序员可能只是做了一个虚拟实现。到目前为止,很难自动评估日志消息的质量。例如,考虑以下两条日志消息:

1) En error occurred while executing methods XY, parameter Z null.
2) Error in crabs take over method XY and annihilate Z with a laser.

如果您只检查关键术语,那么两者都适合测试。所以很难得到一个神谕。上述方法可确保您的程序员完成一些工作,但由他来添加质量日志。您当然可以添加其他质量参数,例如长度或相关性,但如果它们不涉及问题,所有这些都是毫无意义的。相当长一段时间以来,同样的困境一直困扰着行业,需要适当的错误处理。

我相信唯一具体有效的工具是代码审查和员工评估。

于 2013-09-11T11:33:10.970 回答
1

我想你可以使用 PMD 工具来强制记录

于 2013-09-11T11:24:50.833 回答
1

您可以使用jMock来模拟您的日志记录类。然后为你的程序编写一个单元测试,检查它调用正确的日志记录函数的期望。

于 2013-09-11T11:29:54.390 回答
0

这里有两件事。

您可以检查代码覆盖率 以检查程序的源代码是否经过测试

其次,如果有任何程序缺陷,例如PMD ,还有其他工具可以分析代码

于 2013-09-11T11:29:40.607 回答