2016-06-25 4 views
1

log4j 1.x를 log4j2로 업그레이드 할 때 아래 오류가 발생합니다. log4j2 사이트의 설명서에 따라 log4j2 파일 아래에 준비했지만 여전히이 예외가 발생합니다.Log4j2 Logger 요소에 주어진 인수가 유효하지 않습니다.

Log4j2 버전 : 2.6.1, 웹 로직 : 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> 

답변

1

I 패키지 특정 레벨이 다음과 같이 주석 처리되거나 선언되어야한다고 생각하십시오.

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

log4j 구성은 대소 문자를 구분하지 않습니다 ... 이것이 올바른 대답 일 수있는 방법을 모르겠다. –

0

만 루트 로거에는 이름을 가질 수 없습니다, 그래서이 로거는 이름을 가질 필요가있다 :이 답변과 질문의 구성 사이에 차이가 없도록

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

name = "com.company"를 추가하면 모든 행에 대해 파일에 중복 로그가 인쇄됩니다. – pdshelke

+0

그런 다음 해당 로거 설정에'additivity = "false"'를 추가하십시오. –

+0

감사합니다.이 옵션을 사용해 보겠습니다. – pdshelke