当前位置: 首页 > 知识库问答 >
问题:

当使用Slf4j而不是Log4j2时,为什么log4j-slf4j-impl不依赖于log4j-core

张毅
2023-03-14

我想使用log4j2作为我的slf4j日志记录应用程序的日志记录实现。

文档说明我必须依赖于log4j-slf4j-impl和log4j-core。

我的问题是为什么log4j-slf4j-impl不依赖于log4j-core(因此带来了它绝对需要的库)?

共有1个答案

漆雕兴平
2023-03-14

技术上,SLF4J桥只需要Log4J2 API。您可以构建自己的Log4J2 API实现,并包含它,而不是Log4J2核心JAR。

如果您想知道为什么开发人员选择这样构建它,您不认为如果您在log4j开发人员邮件列表中询问,您会更有可能得到一个准确的答案吗?

 类似资料:
  • 我有一个Maven项目,我想使用log4j2和slf4j。所以我添加了这个依赖项: 就我所知,它似乎起作用了。但我的问题是关于log4j-slf4j-impl的可传递依赖关系。 为什么IntelliJ显示log4j-core引入了log4j-api,但由于是重复的,所以忽略了它(我相信下面的截图是这么说的)?我该如何预防呢?

  • 众所周知,如何将使用log4j的代码适配到slf4j并将后者作为主记录器,包括将LogBack这样的实现插入到具体的应用程序记录器中。 那相反的路线呢?我有一个到处使用log4j的大型应用程序,将其迁移到slf4j将是非常困难的,例如,我有许多命令行工具,它们都有自己的log4j配置文件。 现在我必须通过使用一个正在向slf4j接口发送日志消息的小库来扩展应用程序。 是否有一种方法可以将所有slf

  • 主要内容:SLF4J 与 Log4j 的区别,为什么 SLF4J 优于 Log4J?SLF4J 与 Log4j 的区别 SLF4J(Simple Logging Façade for java)是一个 API,旨在提供对许多日志框架的通用访问,log4j 就是其中之一。 它基本上是一个抽象层。它不是日志记录实现。这意味着如果您正在编写一个库并且您使用 SLF4J,您可以将该库提供给其他人使用,他们可以选择与 SLF4J 一起使用的日志记录实现,例如 log4j 或 Java 日志

  • 希望是一个简单的问题,但我的google foo让我失望了--我有一个maven项目,我们在其中使用了SLF4J和Log4J1.2绑定。 我们现在想要转移到Log4J2,特别是为了提高性能--但是,我一辈子都找不到Log4J2.0绑定的maven依赖项。我在http://logging.apache.org/log4j/2.x/log4j-SLF4j-impl/上找到了一些注释,但没有提到任何依赖

  • 我有一个用Maven构建的RESTJava应用程序。它由一个包含两个模块的项目组成: myapp_server(父项目) myapp_rest myapp_logging 这是父POM: 这是的POM(使用dropwizard中的java简单原型创建): 这是的 POM: 我想让所有日志都通过,以便使用进行日志记录。删除向导在内部使用日志,所以我试图让它使用slf4j。 如果我运行这个项目,我会得

  • 但是,部署在同一台服务器上的一些其他项目使用Tomcat的lib目录中存在的slf4j和log4j库,我无法删除这些库。 Tomcat lib目录中存在的Slf4J和Log4J版本 SLF4J-API-1.4.2 当我从Tomcat的lib目录中删除这些库并使用project的pom中提到的库时,我的项目运行良好 当我注释项目的pom文件中的依赖项并使用下面Tomcat的lib中的依赖项时,会引发