为元素记录器提供的 Log4j2 参数无效

Log4j2 Arguments given for element Logger are invalid

我在将 log4j 1.x 升级到 log4j2 时遇到以下错误。 根据 log4j2 站点上的文档,我准备了以下 log4j2 文件,但我仍然收到此异常。

Log4j2 版本:2.6.1,Weblogic:10.3.6,jdk1.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>

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

<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" />

只有根记录器可以没有名字,所以这个记录器需要有一个名字:

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