2017-03-15 1 views
1

북미가 일광 절약 시간제로 전환 한 후 로그에서 문제가 발생했습니다. 로그 롤오버 정책에 의해 재설정 될 때까지 로그 시간은 "앞으로 튀어 오르는"시계를 반영하여 변경되지 않았습니다.log4j 및 일광 절약제

우리 사용하는 다음과 같은 패턴 레이아웃과 RollingRandomAccessFile의 펜더 내 정책 :

 <PatternLayout> 
      <Pattern>%d{ISO8601} traceId=%X{X-B3-TraceId} spanId=%X{X-B3-SpanId} [%-15.20t] %-5p %-20c{1.} : %m%n</Pattern> 
     </PatternLayout> 
     <Policies> 
      <TimeBasedTriggeringPolicy interval="1" modulate="true"/> 
      <!-- 100MB limit before log file is rolled over --> 
      <SizeBasedTriggeringPolicy size="100 MB" /> 
     </Policies> 

사람이 여기에 예상되는 동작이 log4j에이 상황이 이러한 유형의 지원으로 날 지점 수 있을까요? 현재 log4j 버전 2.4.1을 사용 중입니다.

+1

로그에 UTC 시간 소인을 사용해보십시오. 그렇다면 결코 "시간 변경"문제가 없습니다. –

답변

2

이것은 가능성이 DEFAULT와 같은 이름을 가진 모든 형식 (Log4j2 미리 정의 된 날짜 형식에 사용하는 FixedDateFormat 클래스의 issue with DST에 의해 발생, ABSOLUTE, COMPACT, DATE, ISO8601 및 ISO8601_BASIC).

이 문제는 수정되어 다가오는 Log4j 2.8.2 릴리스에 포함될 예정입니다.

+0

여기에 기록 된대로 : https://issues.apache.org/jira/browse/LOG4J2-1849 – KramKroc

1

비슷한 상황에서 패턴에 TZ를 추가하는 것이 좋습니다. 당신이 벨파스트에있어 (? 나는 런던이 더 정확 가정 Wikipedia에서) 때문에, 시도 :

<Pattern>%d{ISO8601}{Europe/London} traceId=%X{X-B3-TraceId} spanId=%X{X-B3-SpanId} [%-15.20t] %-5p %-20c{1.} : %m%n</Pattern> 

Log4J 2 Layouts에서 :

D {패턴}

날짜 {패턴}

로깅 이벤트의 날짜를 출력합니다. 날짜 변환 지정자 뒤에는 SimpleDateFormat 당 날짜 및 시간 패턴 문자열이 들어있는 중괄호가 올 수 있습니다.

미리 정의 된 형식은 DEFAULT, ABSOLUTE, COMPACT, DATE, ISO8601 및 ISO8601_BASIC입니다.

java.util.TimeZone.getTimeZone 당 시간대 아이디가 포함 된 중괄호 세트를 사용할 수도 있습니다. 날짜 형식 지정자가 지정되지 않으면 DEFAULT 형식이 사용됩니다.

Pattern    Example 
%d{DEFAULT}   2012-11-02 14:34:02,781 
%d{ISO8601}   2012-11-02T14:34:02,781 
%d{ISO8601_BASIC} 20121102T143402,781 
%d{ABSOLUTE}  14:34:02,781 
%d{DATE}   02 Nov 2012 14:34:02,781 
%d{COMPACT}   20121102143402781 
%d{HH:mm:ss,SSS} 14:34:02,781 
%d{dd MMM yyyy HH:mm:ss,SSS} 02 Nov 2012 14:34:02,781 
%d{HH:mm:ss}{GMT+0} 18:34:02 
%d{UNIX}   1351866842 
%d{UNIX_MILLIS}  1351866842781 

가능한 중복 : Configure DST(Daylight Savings Time) in log4j - 당신을 위해 적절한 있다면, TZUpdater에 관한 추가 정보를 참조 할.

추가 관련 버그 리포트 : How does log4j2 handle daylight savings