无法加载类org.slf4j.impl.StaticLoggerBinder,尽管StaticLoggerBinder在Maven-Rep中。

3
我试图使用slf4j-Logger-Functions,但总是遇到相同的错误:
SLF4J: 无法加载类"org.slf4j.impl.StaticLoggerBinder"。 SLF4J: 默认为无操作(NOP)记录器实现 SLF4J: 有关详细信息,请参见http://www.slf4j.org/codes.html#StaticLoggerBinder
我已经尝试了常见的解决方案,并且如您在图像中所看到的那样,“StaticLoggerBinder”已加载到目录中,但错误仍然存在。你有任何想法吗?
package de.stefan.test;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Test {

    public static void main(String[] args) {
        Logger logger = LoggerFactory.getLogger(Test.class);
        logger.info("This is how you configure Java Logging with SLF4J");
    }
}


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>de.stefan</groupId>
    <artifactId>stefan</artifactId>
    <version>1.0-SNAPSHOT</version>

    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.25</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.25</version>
        </dependency>

    </dependencies>

</project>

项目结构


我不知道 - 但如果这与tess4j有关 - 放弃吧!使用其他东西创建你自己的文件!!! - gpasch
1
请检查此链接是否有帮助:https://examples.javacodegeeks.com/enterprise-java/slf4j/solving-failed-load-class-org-slf4j-impl-staticloggerbinder-error/ - ProgrammerBoy
2个回答

1

slf4j-simple在您运行程序时不在您的类路径中。将其放入您的类路径中,例如java -classpath ./lib/* YourProgram。其中lib包含您的jar文件。


0

请确保您在pom中有以下4j依赖项,并添加所需的应用程序附加器(例如控制台或/和文件)的log4j.properties/xml到您的类路径中。

  1. 根据您的需要在属性中提及版本,最新版本更好-

    <log4j.version>2.13.3</log4j.version>

   <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <version>${log4j.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <version>${log4j.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
      <version>${log4j.version}</version>
      <scope>runtime</scope>
    </dependency>

  • 一个样本Log4j配置属性文件可以像这样 -
  •  status = error
    name= properties_configuration
    
    # Give directory path where log files should get stored
    #property.basePath = E:\\AppTest_logs\\
    
    # ConsoleAppender will print logs on console
    appender.console.type = Console
    appender.console.name = consoleLogger
    appender.console.target = SYSTEM_OUT
    appender.console.layout.type = PatternLayout
    
    appender.file.type = File
    appender.file.name = STDOUT
    appender.file.filename = logs/AppsConsole.log
    appender.file.layout.type = PatternLayout
    appender.console.filter.threshold.type = ThresholdFilter
    appender.console.filter.threshold.level = error
    
    # Specify the pattern of the logs
    appender.console.layout.pattern = %highlight{ [%p] %d{dd MMM yyyy HH:mm:ss,SSS} [%t] %x %c %M - %m%n}{FATAL=white, ERROR=Blink red, WARN=Underline yellow, INFO=Bright white, DEBUG=Bright green, TRACE=blue}
    appender.file.layout.pattern = %d{yyyy-MM-dd}-%t-%x-%-5p-%-10c:%m%n
    
    # RollingFileAppender will print logs in file which can be rotated based on time or size
    
    
    # Mention package name here in place of example. Classes in this package or subpackages will use ConsoleAppender and RollingFileAppender for logging
    logger.example.name = com.threeylos.zapizook
    logger.example.level = info
    logger.example.additivity = false
    logger.example.appenderRef.rolling.ref = fileLogger
    logger.example.appenderRef.console.ref = consoleLogger
    
    # Configure root logger for logging error logs in classes which are in package other than above specified package
    
    rootLogger.level = info
    rootLogger.additivity = false
    #rootLogger.appenderRef.rolling.ref = fileLogger
    rootLogger.appenderRef.console.ref = consoleLogger


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接