今天使用Clojure的过程中出现了有关SLF4J日志的错误,特此记录一下。
错误描述
今天在启动Clojure项目时出现了如下错误信息:
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.
原因在于Clojure使用的库依赖于slf4j,而项目却没有slf4j的相关配置。
解决问题
1.在项目project.clj文件的:dependencies
中添加如下依赖:
[org.slf4j/slf4j-log4j12 "1.7.25"]
[log4j/log4j "1.2.12" :exclusions [javax.mail/mail
javax.jms/jms
com.sun.jmdk/jmxtools
com.sun.jmx/jmxri]]
- 在项目src目录下新建log4j.properties文件,内容如下:
log4j.rootLogger=DEBUG, stdout, R
#向文件输出,且文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.R=org.apache.log4j.RollingFileAppender
#向控制台输出
#log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.R.File=./log/logger1.log
log4j.appender.R.MaxFileSize=1M
log4j.appender.R.MaxBackupIndex=20
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[%d][%p][%c] %m%n
在解决此问题的过程中,在Google上找到一篇文章http://www.bahmanm.com/blogs/how-to-add-logging-to-a-clojure-project,我也是根据此文章解决问题的,特此感谢!