2012-11-21 4 views
12

나는 다음과 같은 log4j2.xml 파일이 : 나는 반복해서 같은 로그 파일을 덮어 쓰는 등 그log4j2 - 로그 파일의 수를 제한

  1. 대신이 구성을 수정하는 방법

    <?xml version="1.0" encoding="UTF-8"?> 
    <configuration status="OFF"> 
        <appenders> 
        <RollingFile name="testLog" fileName="test.log" filePattern="" append="false"> 
         <PatternLayout pattern="[%t] %-5level - %msg%n%n"/> 
        <SizeBasedTriggeringPolicy size="5mb" /> 
        </RollingFile> 
        </appenders> 
        <loggers> 
        <logger name="TestsLogger" level="trace" additivity="false"> 
         <appender-ref ref="testLog"/> 
        </logger> 
        <root level="debug"> 
         <appender-ref ref="testLog"/> 
        </root> 
        </loggers> 
    </configuration> 
    

    을 다시 5MB 제한에 도달하면 새 파일이 생성됩니다. test1.log, test2.log 등과 같은 것이 있으면 좋을 것입니다.

  2. 1에서 생성 된 부분 로그 파일의 수를 어떻게 제한합니까?

    creating test1.log [present log files: test1.log] 
    test1.log - 5mb limit reached 
    creating test2.log [present log files: test1.log, test2.log] 
    test2.log - 5mb limit reached 
    creating test3.log [present log files: test2.log, test3.log] 
    test3.log - 5mb limit reached 
    creating test4.log [present log files: test3.log, test4.log] 
    and so on 
    

사람이 알고 있나요

, 어떻게 그런 일을 달성하기 위해 : 내가 달성하고자하는 것은 다음과 같은 계획은? 물론 log4j2만으로 이런 일이 가능하다면 좋을 것입니다. 그러나 log4j2를 메인 Java 애플리케이션과 함께 실행하고 불필요한 로그 파일을 삭제하는 일종의 외부 프로그램과 결합하는 방법이 있지만 마지막 두 개의 로그 파일은 그대로 유지해야합니다. 그래서 누군가가 적어도 1에 대한 제안을 가지고 있다면, 그것은 내가 찾고있는 것일 수 있습니다. 왜냐하면 나는 2 부작을위한 프로그램을 쓸 수 있을지도 모르기 때문이다. 물론 두 번째 부분도 log4j2로 수행 할 수 있다면 멋질 것입니다.

답변

20

지금까지 log4j2를 사용하지는 않았지만 RollingFileAppender의 설명서는 많은 구성 예제를 제공합니다.

<RollingFile name="RollingFile" fileName="logs/app.log" 
      filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz"> 
    <PatternLayout> 
    <pattern>%d %p %C{1.} [%t] %m%n</pattern> 
    </PatternLayout> 
    <Policies> 
    <SizeBasedTriggeringPolicy size="5 MB"/> 
    </Policies> 
    <DefaultRolloverStrategy max="20"/> 
</RollingFile> 
+0

죄송합니다 늦게 반응 : 당신 솔기에 대한 재미있는

는 다음과 같이 (DefaultRolloverStrategy 사용) 할 수 있습니다. 나는 그 해답을 당신에게 감사하고 싶었다. log4j2의 향후 사용 가능성에 대한 예로서 나를 제공 할 것입니다. –

+0

고맙습니다. 작동합니다. – Braj