我们应该什么时候登录?在函数调用之前(示例 A)还是在目标方法的开头(示例 B)?
请注意,这个问题是关于确切的记录器函数调用位置,而不是一般的最佳记录实践。
解决方案 A:记录函数调用:
function someProcess() {
log.info("Reading data");
readDataFromIO();
log.info("Outputing data");
outputDataToScreen();
}
// ... other module:
function readDataFromIO() {
...
}
function outputDataToScreen() {
...
}
解决方案 B:在方法开始时记录:
function someProcess() {
readDataFromIO();
outputDataToScreen();
}
// ... other module:
function readDataFromIO() {
log.info("Reading data");
...
}
function outputDataToScreen() {
log.info("Outputing data");
...
}
在解决方案 A 中,当效率问题出现时,您可以自定义消息或退出日志记录,但是如果日志消息看起来相同,您可能会忘记记录并且您有很多重复的代码。在解决方案 B 中,没有忘记日志记录和代码重复的风险,但是您不能 100% 关闭日志记录逻辑,并且如果方法调用中出现错误(例如空指针异常),您将遇到麻烦。哪个是最佳实践?