2017-01-04 5 views
0

다음 로그 구성이 있습니다.부분적 .gz 파일은 log4j2로 작성했습니다.

<RollingRandomAccessFile name="RollingReqAppender" 
     fileName="/usr/test/req.log" 
     filePattern="/usr/test/req.log.%d{yyyy-MM-dd-HH}.%i.gz" 
     immediateFlush="true" append="true"> 
     <PatternLayout> 
      <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS Z}%m%n</Pattern> 
     </PatternLayout> 
     <Policies> 
      <SizeBasedTriggeringPolicy size="500 MB"/> 
      <TimeBasedTriggeringPolicy interval="1" modulate="true" /> 
     </Policies> 
    </RollingRandomAccessFile> 

로그가 롤백되면 (시간 또는 크기 기준) gzipped됩니다. 파일을 압축하는 데는 시간이 걸립니다 (로드에 따라 몇 분에서 몇 분 정도 소요됩니다). 문제는 파일을 gzip으로 압축하고 gzip으로 압축하는 동안 부분적으로 gzip 된 파일이 최종 gzip 파일과 같은 이름의 같은 폴더에 저장된다는 것입니다. 예 : /usr/test/req.log.2017-01-03-02.1.gz

이렇게하면 파일의 소비자가 부분 파일을 처리하는 데 문제가 있습니다. 부분적인 gzipped 파일과 완성 된 gzip 파일을 구별 할 수 있기를 원합니다. 예를 들어, 내가 설치에 파일이 gzip으로 압축되는 동안, 그것은 다른 이름의 예를 작성하는 구성 싶습니다 /usr/test/req.log.2017-01-03-02.1.temp.gz을하고 완전히 gzip으로 압축되면 이름이 최종 이름 /usr/test/req.log.2017-01-03-02.1.gz

로 변경 어떻게 할 수 이걸 달성 할까?

답변

1

Log4j2는 현재 사용자가 설명한 것처럼 동작하지 않습니다. 따라서이를 가능하게하는 구성은 없습니다.

Log4j2 JIRA 이슈 트래커에서 기능 요청을하십시오. 이것을 달성하는 가장 빠른 방법은 유닛 테스트를위한 패치를 제공하는 것입니다.