2013-09-03 3 views
1

Log4J 2.0을 사용하여 현재 수행중인 프로젝트의 로그를 만듭니다. 로그는 작으며 3 개월 동안 유지해야한다는 요구 사항이 있습니다. 나는 현재 달의 로그를 3 개의 아카이브 (각 달의 로그를 담고 있음)로 만들고 싶습니다.log4j2 월간 로그 롤오버

내가 도움이 필요한 문제는 log4j가 월 (또는 월말) 초에 로그를 순환하도록 구성하는 것입니다.

이 문제를 조사한 결과 거의 모든 것이 log4j 1.x에서 2.0으로 존재하지 않는 datePattern 매개 변수에 관한 것입니다.

<?xml version="1.0" encoding="UTF-8"?> 
<configuration status="warn" name="NKMS" packages=""> 
    <appenders> 
     <FastRollingFile name="LogFile" fileName="logs/Tier2HttpServer.log" filePattern="logs/app-%d{yyyy-MM-dd}.log.gz"> 
      <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/> 
      <PatternLayout pattern="%d %p %c{1.} [%t] %m%n"/> 
      <Policies> 
       <TimeBasedTriggeringPolicy/> 
       <SizeBasedTriggeringPolicy size="250 MB"/> 
      </Policies> 
      <DefaultRolloverStrategy max="4"/> 
     </FastRollingFile> 
     <Console name="STDOUT" target="SYSTEM_OUT"> 
      <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/> 
     </Console> 
    </appenders> 
    <loggers> 
     <logger name="mil.navy.nrl.itd.xml_filter" level="trace"/> 
     <root level="trace"> 
      <appender-ref ref="STDOUT"/> 
      <appender-ref ref="LogFile"/> 
     </root> 
    </loggers> 
</configuration> 

나는 (지금은) 콘솔에 로그 파일 및 디버그 정보와 이상을 쓰고 있어요 :

여기 내 log4j2.xml 파일입니다. 파일은 잘 작성되었지만 매일 롤오버하는 것처럼 보입니다 (기본값 인 것 같습니다).

FastRollingFile : filePattern을 " '.'yyyy-MM"으로 변경하려고 시도했지만 이상한 일이 발생합니다 (단 하나의 항목 만 파일에 기록되고 즉시 아카이브가 작성됩니다).

log4j-2.0-beta8에 대한 소스를 다운로드했으며 PatternProcessor가 RolloverFrequency.MONTHLY 열거 형을 포함하는 RolloverFrequency를 구문 분석하지만 다시 구현/사용 방법을 알 수 없습니다.

언제나 제공 할 수있는 지원이나 조언은 대단히 좋습니다.

- 에이스

답변

0

버그를 발견했을 수 있습니다. "logs/app-%d{yyyy-MM}.log.gz"의 filePattern에서 원하는 것을 제공 할 것으로 기대됩니다.

문제점에 대한 이해를 돕기 위해 : 초기 로그 이벤트는 즉시 롤오버 (아카이브 파일 작성)를 트리거합니다. 대신 로그 이벤트를 로그 파일에 수집하고 월말 또는 시작일까지 롤오버하지 않아야합니다. 그 설명이 맞습니까? 이 초기 불필요한 롤오버 외에 다른 문제가 있습니까?

이 문제에 대한 JIRA 티켓을 요청할 수 있습니까? https://issues.apache.org/jira/browse/LOG4J2

+0

맞습니다. 아카이브가 즉시 생성됩니다. 또한 새로 작성된 로그에 단일 항목 만 작성되고 로그 수집이 중지됩니다. 응용 프로그램을 다시 시작하면 동일한 프로세스가 반복됩니다. – AceFunk

+0

JIRA 티켓이 생성되었습니다. 내 첫 번째, 그래서 나는 그것을 올바르게 했길 바래. :) https://issues.apache.org/jira/browse/LOG4J2-385 – AceFunk

+0

이것은 Log4J 2.0 beta8 버그입니다. 위의 filePattern은 로그를 월간 롤오버해야합니다. – AceFunk