2017-09-06 3 views
1

아래의 XML로 log4j2 logger에 파일명을 지정하고 있습니다. 모든 잘 작동하지만 난 오류를 얻을log4j2 로거에 파일명 추가하기

2017년 9월 6일 16 : 54 : org.apache.logging.log4j.core.appender.RandomAccessFileAppender 무시 타입 33,496 주 ERROR 알 수없는 오브젝트 "RandomAccessFile의는"시도 [Appenders], [Logger], [Properties], [Scripts], [CustomLevels] 중 하나에 중첩합니다. RandomAccessFileappender<Appenders> XML 요소에 정의되어 있지 않기 때문에

<?xml version="1.0" encoding="UTF-8"?> 
    <Configuration package="log4j.test" 
        status="WARN"> 
     <Appenders> 
      <Console name="Console" target="SYSTEM_OUT"> 
       <PatternLayout pattern="%d{dd/MM/yyyy HH:mm:ss} %c %m%n"/> 
      </Console> 
     </Appenders> 
     <RandomAccessFile name="FILE" fileName="${sys:log4j.saveDirectory}/CMSAutomation.${date:yyyy-MM-dd_hh-mm-ss}.log" append="true" immediateFlush="false"> 
      <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-6p %C{1}.%t:%L >>> %m%n"/> 
     </RandomAccessFile > 
     <Loggers> 
      <Logger name="log4j.test.Log4jTest" level="debug"> 
       <AppenderRef ref="Console"/> 
      </Logger> 
      <Root level="trace"> 
       <AppenderRef ref="Console"/> 
      </Root> 
     </Loggers> 
    </Configuration> 

답변

1

이 오류가오고있다.

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration package="log4j.test" 
       status="WARN"> 
    <Appenders> 
     <Console name="Console" target="SYSTEM_OUT"> 
      <PatternLayout pattern="%d{dd/MM/yyyy HH:mm:ss} %c %m%n"/> 
     </Console> 
     <RandomAccessFile name="FILE" fileName="${sys:log4j.saveDirectory}/CMSAutomation.${date:yyyy-MM-dd_hh-mm-ss}.log" append="true" immediateFlush="false"> 
      <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-6p %C{1}.%t:%L >>> %m%n"/> 
     </RandomAccessFile> 
    </Appenders> 
    <Loggers> 
     <Logger name="log4j.test.Log4jTest" level="debug"> 
      <AppenderRef ref="Console"/> 
     </Logger> 
     <Root level="trace"> 
      <AppenderRef ref="Console"/> 
     </Root> 
    </Loggers> 
</Configuration> 

당신은 log4j2 문서 here에서 동일하게 확인하실 수 있습니다 -

다음은 어떤 appender 정의 RandomAccessFileappender 포함의 올바른 방법입니다.

추가 1 점은 loggerRandomAccessFile 첨부자를 사용하고 있지 않습니다. logger에 정의하지 않으면 작동하지 않습니다.