Java日志:是log还是logger ?



我时不时会遇到这样的代码:

private final Logger log = LoggerFactory.getLogger(MyClass.class);

假设这是一个slf4j记录器对象。如果使用Apache Commons Logging,甚至类将被称为Log而不是Logger

我一直在考虑这个问题,并列出了以下两个选项的一些利弊:

logger代替log的原因

  1. 用途:它是一个日志的作者,而不是日志本身。
  2. 误导性: log是一个固有的误导性的名字,因为日志不能读取。

log代替logger的原因

  1. 方法调用可读性: Logger上可用的方法通常命名为info(), error()等。因此,log.error()变得类似于在"记录这个错误"中大声说出的命令,而logger.error()看起来更像是在记录器本身报告错误,更不用说logger.debug()听起来像什么了。

现在问题来了。也许还有第三种选择来命名这个讨厌的Logger?你在你的项目中使用什么,为什么?

是否有第三种选择来命名这个讨厌的Logger?

你想叫什么就叫什么。即使是lumberjack,如果它让你感到快乐1

你在你的项目中使用什么,为什么?

我使用当前使用的日志框架给出的类名。这些天,我倾向于使用SLF4J日志facade库,这样可能重用我的代码的人就不会因为我选择的日志记录而受到阻碍。

我倾向于使用log作为实例变量的名称,如果它是static final,则使用LOG。为什么?因为1)它是传统的,2)它的字符更少。无论哪种方式,读者都将很快了解我在代码中使用的约定。

我同意在你工作的每个代码库中保持一致是很重要的。但我不认为你的老板会批准你加班来修复你的记录器在10,000个文件中不一致的命名。我也不认为你的同事会喜欢代码审查的变化。不是重要。


1 -这就是我对这个问题的看法

最新更新