无法加载类 org.slf4j.impl.StaticLoggerBinder,即使 StaticLoggerBinde



我正在尝试使用 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>

项目结构

运行程序时slf4j-simple不是类路径。把它放在你的类路径中,类似于java -classpath ./lib/* YourProgram.包含 jar 文件的位置。

只需确保在pom中具有以下4j依赖项,并添加log4j.properties/xml以及所需的附录,即用于控制台或/和类路径中的文件。

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

    2.13.3

<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>

  1. 示例 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

相关内容

  • 没有找到相关文章

最新更新