这似乎是一个简单的问题,但我可以得到它。在其中一次采访中被问到“你将如何确保编写 Java 程序的人正在放置正确的日志消息”
我说我们必须在代码审查期间检查这一点。对此,他说有一种方法可以让您强制进行日志记录。
我没有答案。有没有办法做到这一点?
任何帮助都会很棒
您可以编写一个包含日志记录方法的抽象类。抽象实现引发错误。在单元测试期间,只需检查方法是否抛出错误,如果是,则测试失败。
但是,这很容易出错,因为您的程序员可能只是做了一个虚拟实现。到目前为止,很难自动评估日志消息的质量。例如,考虑以下两条日志消息:
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.
如果您只检查关键术语,那么两者都适合测试。所以很难得到一个神谕。上述方法可确保您的程序员完成一些工作,但由他来添加质量日志。您当然可以添加其他质量参数,例如长度或相关性,但如果它们不涉及问题,所有这些都是毫无意义的。相当长一段时间以来,同样的困境一直困扰着行业,需要适当的错误处理。
我相信唯一具体有效的工具是代码审查和员工评估。
我想你可以使用 PMD 工具来强制记录
您可以使用jMock来模拟您的日志记录类。然后为你的程序编写一个单元测试,检查它调用正确的日志记录函数的期望。