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

slf4j

子车宏浚
2023-03-14

我在我的项目中使用log4j2和slf4j

信息:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

pom文件

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <slf4j.version>1.7.7</slf4j.version>
</properties>

   <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
    </dependency>


    <dependency>
        <groupId>com.lmax</groupId>
        <artifactId>disruptor</artifactId>
        <version>3.2.0</version>
    </dependency>

     <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.0.1</version>
     </dependency>

     <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.0.1</version> 
     </dependency>

更新:我在pom文件中添加了以下依赖项,我在mavenrepository中看到了jar——尽管在运行mvn clean/install时仍然看到相同的消息

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.0.1</version>
    </dependency>

共有3个答案

万俟小林
2023-03-14

除了 log4j-slf4j-impl 依赖项之外,您还需要 slf4j-ext 依赖项。

见http://logging . Apache . org/log4j/2 . x/log4j-slf4j-impl/dependencies . html

蒋俊
2023-03-14

您的 log4j2 配置正确(POM 端),但您从未对 slf4j 说过它应该写入的位置(后端部分)。

您应该将其添加到您的pom文件中

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>2.0.1</version>
</dependency>

这是Log4j 2 SLF4J绑定。根据Log4j 2 SLF4J绑定文档,Log4j 2 SLF4J绑定允许编码到SLF4J API的应用程序使用Log4j 2作为实现

如果它仍然不起作用,您可能会遇到Eclipse问题,因为众所周知Eclipse m2e对slf4j很奇怪。根据SO SLF4J的这篇详细文章:未能加载类“org.slf4j.impl.StaticLoggerBinder”。错误解决方法可能是使用外部专家进行构建。

步炯
2023-03-14

您的pom文件中似乎缺少以下内容。

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>2.0.1</version>
</dependency>
 类似资料:
  • 问题内容: 我对SLF4J有依赖性。我收到此错误: 这是我的Maven条目: 问题出在哪里? 编辑: 没有log4j依赖性我得到以下异常 EDIT2 :这是我得到的示例树 问题答案: 我假设您正在使用Eclipse作为开发环境。 使用捆绑的Maven版本(m2e)时,Eclipse Juno,Indigo和Kepler不会抑制消息SLF4J:无法加载类“ org.slf4j.impl.Static

  • 问题内容: 我有一个要登录的Maven&Spring应用程序。我热衷于使用SLF4J。 我想将所有配置文件放入包含log4j.xml的目录{classpath} / config中,然后使用spring bean进行初始化。 例如 但是,我得到此警告,没有日志记录。 log4j:WARN找不到记录器的附加程序(org.springframework.context.support.ClassPat

  • 问题内容: 看来log4j存在一些类加载问题(其中包括其他问题),在我看来,趋势是从log4j转向slf4j。(Hibernate停止使用第一个来支持后者) 是真的吗 slf4j解决的log4j主要问题是什么? slf4j是硬道理还是有更好的“下一个下一个log4j”行业标准? 更新: 因此,delfuego的这个答案使我感到困惑,您可以接受/反对吗?: 您似乎偶然发现了log4j(和Apache

  • 问题内容: 我正在使用slf4j登录我的应用程序。我得到slf4j的目的。我想知道如何找出当前绑定到哪个日志记录库slf4j。我的引用库中有log4j。我假设slf4j已将自身绑定到log4j。 我想知道的是,有什么方法可以明确确认这种绑定吗? 问题答案: 只需执行SLF4J的操作来发现绑定: 现在,你可以尝试找出什么是实际执行的logback在我的情况: 打印:

  • 问题内容: 使用Maven启动并运行。 尝试构建一个我继承的项目。我已经解决了大多数问题,但是现在看到一个奇怪的错误: 看起来与 content-package-maven-plugin 插件有关。 希望人们能提供任何线索:) 问题答案: 最后,我选择了最简单的解决方案,该解决方案不需要自定义POM配置。 恢复使用Maven 3.2.5

  • 问题内容: 我找到了一篇有用的文章,解释了如何使Jersey使用SLF4J而不是JUL。现在,我的单元测试看起来像(并且很完美): 我的包括以下依赖项: 它运行完美,但是我不想在每个单元测试中都进行相同的配置。这是很明显的代码重复,我想避免。我怎样才能更有效地做到这一点? ps。也许不可能优化上面的代码,而我正在尽力而为? 问题答案: 最好的方法是通过自定义Listener。在JSF servle

  • 问题内容: 我正在尝试使用Spring将SLF4J记录器注入到这样的类中: 我找到了已经实现的类。但是问题是我无法获得有关注射目标的任何信息: FactoryBean甚至是正确的方法吗?使用picocontainers 工厂注入时,您会传入目标的。实际上,这有点棘手。但是您如何在春季完成这项工作? 问题答案: 我使用自定义BeanFactory进行了解析。如果有人提出更好的解决方案,我将很高兴听到

  • 问题内容: 从java.util.logging的日志记录级别如何映射到SLF4J? SLF4J 跟踪 调试 信息 警告 错误 致命 java.util.logging 最好的 更好 精细 配置 信息 警告 严重 问题答案: 通过SLF4JBridgeHandler文档和测试: