We are migrating a web app from log4j to log4j2.
The app was using SLF4J and including this dependencies:
- log4j
- slf4j-api
- slf4j-log4j12
- jcl-over-slf4j
And excluding all possible reference to commons-logging.
We replaced the old log4j dependencies by:
- log4j-api
- log4j-core
- log4j-slf4j-impl
- log4j-web
The log configuration file is load using a servlet.
Deploying de EAR file in Websphere we are having this exception:
ERROR StatusLogger An exception occurred processing Appender rollingFileMijntoekomst
java.lang.ClassCastException: java.lang.String incompatible with java.util.Map$Entry
at org.apache.logging.log4j.message.ParameterFormatter.appendMap(ParameterFormatter.java:563)
at org.apache.logging.log4j.message.ParameterFormatter.appendPotentiallyRecursiveValue(ParameterFormatter.java:498)
at org.apache.logging.log4j.message.ParameterFormatter.recursiveDeepToString(ParameterFormatter.java:456)
at org.apache.logging.log4j.message.ParameterFormatter.formatMessage2(ParameterFormatter.java:189)
at org.apache.logging.log4j.message.ParameterizedMessage.formatTo(ParameterizedMessage.java:228)
at org.apache.logging.log4j.core.pattern.MessagePatternConverter.format(MessagePatternConverter.java:120)
at org.apache.logging.log4j.core.pattern.PatternFormatter.format(PatternFormatter.java:38)
at org.apache.logging.log4j.core.layout.PatternLayout$PatternSerializer.toSerializable(PatternLayout.java:341)
at org.apache.logging.log4j.core.layout.PatternLayout.toText(PatternLayout.java:240)
at org.apache.logging.log4j.core.layout.PatternLayout.encode(PatternLayout.java:225)
at org.apache.logging.log4j.core.layout.PatternLayout.encode(PatternLayout.java:59)
at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.directEncodeEvent(AbstractOutputStreamAppender.java:197)
at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.tryAppend(AbstractOutputStreamAppender.java:190)
at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:181)
at org.apache.logging.log4j.core.appender.RollingFileAppender.append(RollingFileAppender.java:312)
at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:156)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:129)
at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:120)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)
at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:543)
at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:502)
at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:485)
at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:460)
at org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:82)
at org.apache.logging.log4j.core.Logger.log(Logger.java:162)
at org.apache.logging.log4j.spi.AbstractLogger.tryLogMessage(AbstractLogger.java:2190)
at org.apache.logging.log4j.spi.AbstractLogger.logMessageTrackRecursion(AbstractLogger.java:2144)
at org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(AbstractLogger.java:2127)
at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:2020)
at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1891)
at org.apache.logging.slf4j.Log4jLogger.info(Log4jLogger.java:184)
This is the log4j.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="debug" strict="true"
name="XMLConfigTest">
<Properties>
<Property name="filenameApp">${sys:wotap.app.logs}/app-${sys:SERVER_NAME}${sys:logfilenaam_aparte_contextroot}.AppNew.log</Property>
</Properties>
<Appenders>
<Appender type="Console" name="STDOUT">
<Layout type="PatternLayout" pattern="%d %p [%c] - %m%n" />
</Appender>
<RollingFile name="rollingFileApp" fileName="${filenameApp}" filePattern="${filenameApp}.%d{yyyy-MM-dd}" ignoreExceptions="false">
<PatternLayout>
<Pattern>%d [%t] %-5p (%F:%L) - %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" />
</Policies>
<DefaultRolloverStrategy max="5" />
</RollingFile>
</Appenders>
<Loggers>
<Logger
name="org.apache.logging.log4j.core.appender.ConsoleAppender">
<AppenderRef ref="STDOUT" />
</Logger>
<Logger name="web.app.example" level="debug">
<AppenderRef ref="rollingFileApp" />
</Logger>
<Logger name="org.springframework.ws.server.MessageTracing" level="debug">
<AppenderRef ref="rollingFileApp" />
</Logger>
<Logger name="org.springframework.ws.client.MessageTracing" level="debug">
<AppenderRef ref="rollingFileApp" />
</Logger>
<Root level="debug">
</Root>
</Loggers>
</Configuration>
Any idea bout where is the error?