2015-01-09 4 views
2

최근에 내 tomcat6 서버의 log4j에서 log4j로 마이그레이션되었습니다. 문제는 삭제 된 롤링 파일이 영구적으로 열려있어 디스크 공간이 해제되지 않는다는 것입니다. "sudo/usr/sbin/lsof | grep deleted"명령을 사용하여 삭제 된 파일을 열어 확인합니다. tomcat 서버를 다시 시작하지 않고 파일을 닫는 방법을 이해하지 못하는 것 같습니다. 이러한 로그 중 일부는 cron 작업에 의해 삭제됩니다. 그 중 많은 수가 logrotate를 통해 삭제되고 있습니다. Log4j2 Rolled 삭제 된 파일이 여전히 열려 있고 디스크 공간이 해제되지 않았습니다.

...
<Appenders> 
    <RollingRandomAccessFile name="requestAppender" fileName="${sys:catalina.home}/webapps/miscLogs/request.log" 
       filePattern="${sys:catalina.home}/webapps/miscLogs/request.log.%i"> 
      <PatternLayout> 
       <Pattern> 
        "%d{dd MMM yyyy HH:mm:ss } %-5p %c %x -%m%n" 
       </Pattern> 
      </PatternLayout> 
      <Policies> 
       <SizeBasedTriggeringPolicy size="3400MB"/> 
      </Policies> 
      <DefaultRolloverStrategy max="3"/> 
</RollingRandomAccessFile> 
</Appenders> 
<Loggers> 
<logger additivity="false" name="requestLogger" level="debug"> 
      <AppenderRef ref="requestAppender"/> 
     </logger> 
</Loggers> 

...

문제는 이미 출시되어있는 파일입니다. 이 경우 request.log.3에 문제가 있습니다. 그것은 cron (logrotate 없음)에 의해 삭제되지만 여전히 디스크 공간을 포기하지 않으며 전체 프로그램이 실행중인 Tomcat 서버에 의해 열려 있습니다. lsof의 출력 이하이다

..

자바 자바 여기 REG 8,1 3,565,160,049 5,525,509 /opt/tomcat/webapps/miscLogs/request.log.1는 (삭제) 160U 6393 루트

프로세스는 여전히 열려있는 파일을 보유하고있는 tomcat 6 서버입니다.

+0

"삭제 된 파일 롤링"이란 무엇을 의미합니까? Log4j에는 현재 롤오버 된 파일에 대한 삭제 기능이 없습니다. 나는 소스를 확인했지만 log4j는 스트림 (RollingFileManager 라인 171)을 닫고 있습니다 ... –

+0

더 자세하게 제공하십시오. 로그 파일은 어떻게 삭제됩니까? cron으로? Logrotate? 정확한 명령을 보여주십시오. 또한 log4j2.xml 설정을 제공하십시오. RandomAccessFileAppender를 사용하고 있습니까? –

+0

이러한 로그 중 일부는 cron 작업에 의해 삭제됩니다. 그 중 많은 수가 logrotate를 통해 삭제되고 있습니다. –

답변

0

RandomAccessFileAppender 및 logrotate에 대해 알려진 문제점이 있습니다 : http://issues.apache.org/jira/browse/LOG4J2-354; Log4j 팀은 대신 RollingRandomAccessFileAppender를 사용할 것을 권장합니다.

+0

헤이 거기 여전히 열려있는 파일에 문제가있는 것 같다. 나는 XML 구성을 공유 오전. –

+0

logrotate를 껐습니까? –

+0

예, 결국 했어요. 이제 로테이션은 log4j에서만 수행됩니다. 그러나 cron 작업에 의해 일부 롤백 된 로그가 삭제됩니다. 삭제 된 로그의 서브 세트는 여전히 tomcat 서버에 의해 열려 있습니다. –