使用log4j和axis2时出现问题

3 axis2 log4j

我在axis2上创建了一个web服务,我使用log4j进行日志记录.每次请求进入此WS时,我都会收到以下错误:

log4j:ERROR A "org.apache.log4j.ConsoleAppender" object is not assignable to a "org.apache.log4j.Appender" variable.
log4j:ERROR The class "org.apache.log4j.Appender" was loaded by 
log4j:ERROR [org.apache.catalina.loader.StandardClassLoader@7f342545] whereas object of type 
log4j:ERROR "org.apache.log4j.ConsoleAppender" was loaded by [WebappClassLoader
  delegate: false
  repositories:
    /WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@7f342545
].
log4j:ERROR Could not instantiate appender named "CONSOLE".
[ERROR] java.lang.NullPointerException
Run Code Online (Sandbox Code Playgroud)

我的log4j.properties如下:

log4j.rootCategory=INFO, CONSOLE
#log4j.rootCategory=INFO, CONSOLE, LOGFILE

# Set the enterprise logger priority to FATAL
log4j.logger.org.apache.axis2.enterprise=FATAL
log4j.logger.de.hunsicker.jalopy.io=FATAL
log4j.logger.httpclient.wire.header=FATAL
log4j.logger.org.apache.commons.httpclient=FATAL

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[%p] %m%n

# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=axis2.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n
Run Code Online (Sandbox Code Playgroud)

我在aar的任何地方都没有log4j.properties的其他副本.

有没有人知道我为什么会收到这个初始化错误?

提前谢谢,PJ

Che*_*eso 13

你在Jar Hell.我怀疑问题是你有两个或更多版本的log4j jar由两个不同的类加载器加载.一旦我遇到类似的问题,虽然这是一个不同的错误信息.我做了扫描,在我的机器上找到了7个log4j的版本.哎呀!

怎么避免呢?消除除了其中一个之外的所有人.

它对我有用.

  • 重命名一个jar文件,但保留.jar扩展名没有任何影响,因为tomcat等无论如何都会加载它 (4认同)