如何让 SLF4J 在应用程序中自动注入我的 Logger 实现?

How can I make my Logger implementation be automatically injected by SLF4J in an application?

所以我有自己的 org.slf4j.Logger 实现,称为 MyLogger。到目前为止,一切都很好。我有一个使用 SLF4J + LOG4J 的应用程序。这是在 pom.xml.

中配置的

我的问题是:我如何以某种方式让 SLF4J 采用我的 Logger 实现并在任何地方注入而不是使用 log4j?

我正在寻找有关如何在 SLF4J 实现(log4j、logback、MyLogger 等)之间切换的示例或解释,而无需更改任何代码,只需 pom.xml 配置或其他内容。

SLF4J 将尝试注入它在类路径中找到的第一个兼容的记录器 (org.slf4j.Logger)。为此,您的日志实现还必须通过 org.slf4j.ILoggerFactory 的实现提供一个 LoggerFactory,即 returns 您的记录器。更多信息在这里:http://www.slf4j.org/faq.html#slf4j_compatible