2016-10-10 49 views
0

我想寫一個示例應用程序使用log4j和slf4j。該代碼是在我的應用程序很簡單,我在我的主類下面的代碼在main方法我的問題與log4j java.lang.ClassNotFoundException:= org.apache.log4j.RollingFileAppender

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

Logger logger = LoggerFactory.getLogger("com.company.cdrs"); 
logger.info("testing it in the application"); 

我使用下面的命令來運行測試程序

java -cp /home/nbansal/workspace_eclipse_luna/event-utils-test/target/classes:event-utils-1.1~vox~trunk.jar:json-simple-1.1.jar:slf4j-api-1.7.7.jar:slf4j-log4j12-1.7.7.jar:log4j-1.2.17.jar:log4j-1.2.13.jar -Dlog4j.configuration=file:///home/nbansal/workspace_eclipse_luna/event-utils-test/target/classes/resources/log4j.properties com.company.eventtest.EventUtilsTest 

當我運行該應用程序,我不斷收到以下錯誤:

Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar 
log4j:ERROR Could not instantiate class [=org.apache.log4j.RollingFileAppender]. 
java.lang.ClassNotFoundException: =org.apache.log4j.RollingFileAppender 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372 

我不明白爲什麼我得到這個錯誤,我在classpath中提供正確log4j的jar文件。 這裏是我的log4j.properties該怎麼看起來像

log4j.rootLogger=DEBUG 
    log4j.logger.com.company.cdrs=DEBUG, hadoop_cdr 
    log4j.additivity.com.company.cdrs=false 
    log4j.appender.hadoop_cdr==org.apache.log4j.RollingFileAppender 
     log4j.appender.hadoop_cdr.File=/home/nbansal/workspace_eclipse_luna/event-utils-test/cdr_events.out 
    log4j.appender.hadoop_cdr.ImmediateFlush=true 
    log4j.appender.hadoop_cdr.Threshold=debug 
    log4j.appender.hadoop_cdr.Append=true 
    log4j.appender.hadoop_cdr.layout=org.apache.log4j.PatternLayout 
    log4j.appender.hadoop_cdr.layout.conversionPattern=%u %m%n 
    log4j.appender.hadoop_cdr.DatePattern='.'yyyy-MM-dd-HH 

回答

1

你有兩個等於運營商在你的log4j.properties文件。

log4j.appender.hadoop_cdr=org.apache.log4j.RollingFileAppender 
+0

非常感謝,我從未注意到這個,這樣一個愚蠢的錯誤,再次感謝 – Nitesh