【问题标题】:What access level should loggers be set to?应该将记录器设置为什么访问级别?
【发布时间】:2009-10-09 19:07:34
【问题描述】:

我在下面使用带有 Log4J 的 SLF4J。我应该将记录器设置为哪些访问级别?

static final Logger logger = LoggerFactory.getLogger(ClassName.class);

【问题讨论】:

    标签: java logging log4j slf4j access-levels


    【解决方案1】:

    我认为您应该使用private 访问级别,因为每个类都应该有自己的记录器副本。否则我们无法分辨哪个类真正做了日志记录。

    【讨论】:

    • 有道理,我问是因为 SLF4J 文档省略了访问修饰符,所以我不知道是否存在需要其他类来访问记录器的情况。
    • 日志系统内部的类可能需要,但无论如何它们都会维护自己的引用。
    【解决方案2】:

    我总是将它们设置为私有。是否有任何其他类需要访问此记录器的原因?

    【讨论】:

    • 我见过一些人会设计超类,将记录器暴露给子类
    • 我实际上已经做到了,马特,在这种情况下,受保护的访问对我来说很有意义。
    • @matt b:我以前从未见过。我得试试看它对日志记录的作用。
    • protected?这太可怕了。 protected static 总是一个错误。
    • 你会看到有时在像 Spring 这样的框架中,你可能会扩展它们的控制器或 DaoSupport 类之一。记录器将被声明为受保护的最终记录器 log = LogManager.getLogger(this.getClass()),因此它们将成为运行时类的类型。
    猜你喜欢
    • 2013-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 2017-05-25
    • 2021-01-22
    相关资源
    最近更新 更多