目录
一、SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder"
二、log4j:WARN No appenders could be found for logger
一、SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder"
今天使用华为云SDK时,当我在IDEA新建Maven工程,写完代码运行时,出现了这个错误。
根据提示,到http://www.slf4j.org/codes.html#StaticLoggerBinder中查看原因,原来是需要依赖slf4j-nop.jar,slf4j-simple.jar,slf4j-log4j12.jar,slf4j-jdk14.jar或 logback-classic.jar,于是我到Maven Repository找了相关依赖并引入。
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.30</version>
<scope>test</scope>
</dependency>
不过,引入后还是这个错误。这是<scope>test</scope>导致的,test表示只有在测试环境下才可以使用这个jar包,而我的代码是在main方法中写的,不属于测试环境,相当于没有引入依赖。只需要把它注释掉或者改成<scope>test</scope>,这样在编译的时候就会加载这个jar包了。
二、log4j:WARN No appenders could be found for logger
虽然上面的问题解决了,但是当我运行代码时,又出现了另一个问题。
上面提示要合理初始化日志系统,我到http://logging.apache.org/log4j/1.2/faq.html#noconfig查看原因,发现是因为没有默认的配置文件log4j.properties或log4j.xml,需要新建一个。
在resources目录下新建一个名为log4j.properties的文件,并编辑以下内容。
log4j.rootLogger=DEBUG,Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
参考: