2016-06-15 1 views
1

내 응용 프로그램에 로그인 할 때 log4j2를 사용하고 있습니다. 내 log4.xmllog4j2에 대한 로그 롤오버 통합 테스트 작성 방법

<Policies> 
<SizeBasedTriggeringPolicy size="2000 MB" /> 
<TimeBasedTriggeringPolicy /> 
</Policies> 

다음 정책을 사용 중이며 서버를 종료 할 때 로그를 순환시킵니다.

로그 회전이 위의 조건을 기반으로 작동하는지 확인하기 위해 어떻게 통합 테스트를 작성할 수 있습니까?

+0

프레임 워크를 테스트하지 마십시오. 설정을 테스트하고 싶다면 프레임 워크 소스를 살펴보십시오. https://svn.apache.org/repos/asf/logging/log4j/companions/extras/trunk/src/test/java/org /apache/log4j/rolling/SizeBasedRollingTest.java. 가난한 사람은 2GB의 데이터를 기록하고 새 파일이 만들어 졌는지 확인하는 것이 해결책입니다. – SubOptimal

+0

왜 이미 테스트 된 기능을 테스트하고 싶습니까? – tommus

답변

0

테스트 결과 로그를 대량으로 인쇄해야합니다. 롤링을 돕기 위해 테스트 전용 log4j2 구성을 사용하십시오. 정책에 대해 서로 다른 값을 정의하십시오. 크기 정책을 다소 작은 크기 (2000MB보다 훨씬 적음)로 줄이고 같은 날짜에 여러 파일을 만들 수있는 방식으로 시간 패턴 및 시간 정책 간격을 변경하십시오. 아래 구성 예는 최대 21 개의 일일 파일 생성을 정의하며 가장 낮은 인덱스의 파일이 최신 파일입니다. 파일 압연가 1,000의 크기에 도달 할 때 수행됩니다

<RollingFile name="AppLog" fileName="${logDir}/${logFile}.log" 
     filePattern="${logDir}/${logFile}-%d{dd-MM-yyyy}-%i.log"> 
       <Policies> 
      <TimeBasedTriggeringPolicy/> 
      <SizeBasedTriggeringPolicy size="1 KB"/> 
     </Policies> 
     <DefaultRolloverStrategy fileIndex="min" max="21"/> 
</RollingFile> 

내가 git here에 대한이의 작업 예제가 있습니다. LogApplicationTest 테스트 클래스를 찾으십시오. 팁이 더 필요하거나 다른 문제가있는 경우 - blog을 참조하십시오.