2016-06-01 1 views
0

Tomcat 웹 응용 프로그램 로깅을 위해 log4j 2.5를 사용하고 있습니다. 두 개의 응용 프로그램 서버가 모두 네트워크 경로의 동일한 로그 파일에 씁니다.내 log4j2 롤링 로그가 이전 날짜의 로그 항목을 포함하는 이유는 무엇입니까?

매일 로그 파일에 모든 이전 요일의 항목이 포함되어 있기 때문에 내 로그 파일의 크기가 눈에 띄게 늘어납니다.

예를 들어, myLog-2016-06-01.log에는 5-20 (구현 일)에서 06-01 사이, myLog-05-31에서 5-20에서 5까지의 모든 항목이 포함됩니다 -31, 등등 ...

XML 구성 파일의 작동 방식에 대해 이해하지 못하고 있다고 가정합니다.

는 log4j2.xml에서

관련 정보는 다음과 같습니다 :

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="trace"> 
<Appenders> 
    <RollingRandomAccessFile name="RollingFileLogger" 
          fileName="[...]\myLog.log" 
          filePattern="[...]\myLog-%d{yyyy-MM-dd}.log"> 
     <PatternLayout pattern="%n %n %d ${hostName} %p %c: %msg"/> 
     <Policies> 
      <TimeBasedTriggeringPolicy/> 
     </Policies> 
     <DefaultRolloverStrategy max="10"/> 
    </RollingRandomAccessFile> 
    <Console name="ConsoleLogger" target="SYSTEM_OUT"> 
     <PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/> 
    </Console> 
</Appenders> 
<Loggers> 
    <Root level="trace"> 
     <AppenderRef ref="RollingFileLogger"/> 
     <AppenderRef ref="ConsoleLogger"/> 
    </Root> 
</Loggers> 

+2

"네트워크 경로의 동일한 로그 파일에 쓰기 작업을하는 두 개의 응용 프로그램 서버가 있습니다"- 이것이 문제 일 수 있습니다. 'SocketAppender' 나'SyslogAppender'와 같이 여러 응용 프로그램에서 하나의 로그에 동시에 쓰려면 특별한 appender를 사용해야합니다. – Roman

+0

감사합니다. 감사합니다. 또한이 문제가 유일한 것인지를 확인하기 위해 별도의 파일 (로컬 파일 시스템에있는 파일)을 시도 할 것입니다. – Arc

+0

그게 문제입니다. 그렇다면 SocketAppender를 설정하려고합니다. – Arc

답변

0

Roman의 댓글이 대답은 모든 로거가 모든 웹 어플리케이션에서 호출 깔때기하는 SocketAppender과 동반 소켓 서버를 사용하는 것이 었습니다 하나의 appender로. 완벽하게 작동합니다.