Log4j2为元素Logger提供的参数无效

时间:2016-06-25 10:01:08

标签: java logging log4j2 weblogic-10.x

我在将log4j 1.x升级到log4j2时面临以下错误。 根据log4j2网站上的文档,我已经准备好了log4j2文件,但我仍然得到了这个例外。

Log4j2版本:2.6.1,Weblogic:10.3.6,jdk 1.7.x

请帮助解决此异常:

2016-06-25 05:49:36,002 [ACTIVE] ExecuteThread: '70' for queue: 'weblogic.kernel.Default (self-tuning)' ERROR Unable to invoke factory method in class class org.apache.logging.log4j.core.config.LoggerConfig for element Logger. org.apache.logging.log4j.core.config.ConfigurationException: Arguments given for element Logger are invalid
        at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.generateParameters(PluginBuilder.java:270)
        at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:131)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:918)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:858)
        at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:850)

Log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG" >
      <Properties>
        <Property name="theHostName">${hostName}</Property>
      </Properties>
      <!-- bufferedIO=true by default, bufferSize=8192bytes 
      -->
      <Appenders>
            <RollingFile name="FILE" filename="${sys:weblogic.Name}.log" filepattern="${sys:weblogic.Name}.log.%i" append="true" >
                <PatternLayout pattern="[%-5p][%d{yyyy-MM-dd HH:mm:ss,SSS}][${sys:weblogic.Name}:${hostName}][%t][%X{MessageInfo}][%c{1}:%M:%L][%msg]%n" />
                <Policies>
                    <SizeBasedTriggeringPolicy size="50 MB" />
                </Policies>
                <DefaultRolloverStrategy max="100" fileIndex="min"/>
            </RollingFile>
      </Appenders>
      <Loggers>
            <Logger level="DEBUG" includeLocation="true">
              <AppenderRef ref="FILE"/>
            </Logger>
            <Root level="INFO" includeLocation="true">
              <AppenderRef ref="FILE"/>
            </Root>
            <!--  Package specific log level defines -->
            <logger level="WARN" name="org.springframework" />
            <logger level="WARN" name="org.jboss" />
            <logger level="OFF" name="org.hibernate" />
            <logger level="WARN" name="com.company.project.eligibility" />
      </Loggers>
</Configuration>

2 个答案:

答案 0 :(得分:1)

我想包装特定级别应该被注释掉或声明如下:

<Logger level="WARN" name="org.springframework" />
<Logger level="WARN" name="org.jboss" />
<Logger level="OFF" name="org.hibernate" />
<Logger level="WARN" name="com.company.project.eligibility" />

答案 1 :(得分:0)

只有根记录器没有名称,因此此记录器需要具有名称:

<Logger level="DEBUG" includeLocation="true">
   <AppenderRef ref="FILE"/>
</Logger>