2017-09-14 3 views
1

다음과 같은 방식으로 ElasticSearch의 log4j2 구성을 변경하고 싶습니다. ElasticSearch의 로그는 /path/to/log/{year}/{month}/{day}/cluster_name.log 디렉토리에 저장해야하지만 TimeBasedTriggeringPolicy는 하루가 끝난 후에 만 ​​롤오버를 만듭니다. TimeBasedRollingPolicy를 사용하려고했지만 * .properties 파일을 통해 구성 할 수 없습니다. 전체 log4j2.properties를 log4j2.xml 파일로 되 돌렸지 만 ElasticSearch는 log4j2.properites가 필요합니다. 결국 나는 letter-day의 로그를 적절한 디렉토리에 기록하는 것을 포기하기로 결정했다. TimeBasedTriggeringPolicy로 돌아 왔고이 파일 패턴 /path/to/log/%d{yyyy/MM/dd}/cluster_name.log을 사용했지만 여전히 작동하지 않습니다. 설정 파일의log4j2.properties 일일 롤오버가 작동하지 않습니다.

큰 부분 :

appender.rolling.type = RollingFile 
appender.rolling.name = rolling 
appender.rolling.fileName = /path/to/log/cluster_name.log 
appender.rolling.layout.type = PatternLayout 
appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] %marker%.-10000m%n 
appender.rolling.filePattern = /path/to/log/%d{yyyy/MM/dd}/cluster_name.log 
appender.rolling.policies.type = Policies 
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy 
appender.rolling.policies.time.interval = 1 
appender.rolling.policies.time.modulate = true 

답변

0

나는 %d{yyyy/MM/dd} 패턴이 유효하지 않은 디렉토리 이름입니다 2017/09/19 같은 이름을 가진 디렉토리를 만들 것이라 생각합니다. 그것이 작동하지 않는 이유입니다. 그것은 다음과 같은 로그 파일을 회전합니다

appender.rolling.filePattern = /path/to/log/$${date:yyyy}/$${date:MM}/$${date:dd}/cluster_name_%d{yyyy-MM-dd}.log 

- -

filePattern 아래 시도

/경로///{년}/{월}/{일}/cluster_name_를 {로그에 날짜} .log

파일 이름의 날짜는 필수입니다. 이것이 없으면 작동하지 않을 수 있습니다.

+0

여전히 디렉토리를 만들지 않습니다. –