java - 可分发库中的SLF4J,如何获取Logger

标签 java logging slf4j

我想分发一个依赖于 SLF4J 记录器接口(interface)的库。获得可以很好地集成到任何其他项目中的记录器的最佳实践方法是什么?对于非结构化的问题风格,我感到很抱歉,我仍在努力弄清楚所有这些东西是如何粘合在一起的。

在其他项目中我总是使用这段代码,因为我想获得一个自定义记录器:

private final static Logger LOGGER = LoggerFactory.getILoggerFactory().getLogger(NAME_OF_APP);

如果我创建类 org.slf4j.impl.StaticLoggerBinder 并拥有其他一些库,即使我只是调用 LoggerFactory.getLogger(NAME_OF_APP) 是否会使用其中定义的工厂 还是使用了一些默认的 slf4j 工厂?

我希望用户能够使用他自己的工厂和记录器,那么应​​该选择哪种方式,最重要的是为什么?

最佳答案

我不确定我是否完全理解您要尝试做的事情。

SLF4J 由两部分组成。首先是您在 lib 中用于对日志记录调用进行编码的 API。其次,您在开发过程中用于记录日志的实现,但不要设置为 lib 的依赖项。

因为 SLF4J 在类路径上查找实现,所以使用我们的库的开发人员可以简单地包含他们想要的任何实现。有时是一些非常奇怪的方式 :-) 他们可以使用一系列预构建的实现或自己编写代码。这取决于他们。

我认为除了按原样使用 SLF4J 的 API 之外,您不需要做任何其他事情。

关于java - 可分发库中的SLF4J,如何获取Logger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8758750/

相关文章:

Java 将字符串集合缩减为出现映射

java - Jboss 标准输出时间戳

logging - 如何向 TFSBuild.proj 添加时间戳?

java - SLF4J 如何支持结构化日志记录

java - 另一个 "Comparison method violates its general contract!"

java - Hibernate OneToOne 表连接

javascript - 如何在 pino.js 记录器中旋转日志文件

maven - 使用 slf4j 和 'logback' 进行日志记录,但未创建配置中的指定日志文件。 (使用Maven, jetty )

java - 记录改造到 Logback 记录器

java - 如何使用 JLabels 将文本一个放在另一个之上?