2017-09-14 65 views
1

我想按以下方式更改ElasticSearch的log4j2配置。來自ElasticSearch的日誌應該保存在目錄中:/path/to/log/{year}/{month}/{day}/cluster_name.log但是TimeBasedTriggeringPolicy只能在一天結束後進行翻轉。我一直試圖使用TimeBasedRollingPolicy,但它不能通過* .properties文件進行配置。我將整個log4j2.properties重新編譯爲log4j2.xml文件,但ElasticSearch需要log4j2.properties。最後,我決定辭去信件日記錄到適當的目錄。我返回到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

我認爲有名稱,如2017/09/19這是無效的目錄名%d{yyyy/MM/dd}模式將創建目錄。這就是爲什麼它不起作用。

嘗試以下filePattern -

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

它會旋轉類似下面的日誌文件 -

/路徑/到/日誌/ {每年}/{月}/{天}/cluster_name_ {日期} .log

在文件名中給出日期是強制性的。沒有這個,它可能無法工作。

+0

仍然不會創建任何目錄。 –