2017-06-19 165 views
0

我使用下面的配置,取自Elasticsearch doc。與其等待7天或一天,我該如何立即測試?如何在elasticsearch中測試日誌滾動和刪除?

下面是我log4j2.properties文件

... 
appender.deprecation_rolling.type = RollingFile 
appender.deprecation_rolling.name = deprecation_rolling 
appender.deprecation_rolling.fileName = ${sys:es.logs}_deprecation.log 
appender.deprecation_rolling.layout.type = PatternLayout 
appender.deprecation_rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] %marker%.10000m%n 
appender.deprecation_rolling.filePattern = ${sys:es.logs}_deprecation-%i.log.gz 
appender.deprecation_rolling.policies.type = Policies 
appender.deprecation_rolling.policies.size.type = SizeBasedTriggeringPolicy 
appender.deprecation_rolling.policies.size.size = 1GB 
appender.deprecation_rolling.strategy.type = DefaultRolloverStrategy 
appender.deprecation_rolling.strategy.max = 4 

logger.deprecation.name = org.elasticsearch.deprecation 
logger.deprecation.level = warn 
logger.deprecation.appenderRef.deprecation_rolling.ref = deprecation_rolling 
logger.deprecation.additivity = false 
... 

appender.rolling.strategy.type = DefaultRolloverStrategy 
appender.rolling.strategy.action.type = Delete 
appender.rolling.strategy.action.basepath = ${sys:es.logs.base_path} 
appender.rolling.strategy.action.condition.type = IfLastModified 
appender.rolling.strategy.action.condition.age = 1D 
appender.rolling.strategy.action.PathConditions.type = IfFileName 
appender.rolling.strategy.action.PathConditions.glob = ${sys:es.logs.cluster_name}-* 

注:我使用elasticsearch 5.0.1

更新:我不想等待1D一天如果日誌測試文件正在被刪除或不被刪除。我如何測試10分鐘左右來測試這種情況?類似滾動的情況每隔1分鐘發生一次,並且對於10分鐘以上的日誌會發生刪除。

+0

添加更多詳細信息。 「等待7天或者一天,我怎麼能立刻測試這個?」是什麼意思? –

+0

@DaniyalSyed:有沒有可以讓我立即測試日誌滾動和刪除的屬性?類似滾動的情況每隔1分鐘發生一次,並且對於10分鐘以上的日誌會發生刪除。 – Ricky

回答

1

是的,有一種方法。

實際上,我使用大小觸發策略來強制執行或導致刪除策略,因此測試我的log4j2.properties是否有效。

這是我們的log4j2.properties文件的一個示例,我突出顯示了黑色的變化。

appender.rolling.type = RollingFile 
appender.rolling.name = rolling 
appender.rolling.fileName = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}.log 
appender.rolling.layout.type = PatternLayout 
appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] %marker%.-10000m%n 
appender.rolling.filePattern = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}-%d{yyyy-MM-dd}-%i.log.gz 
appender.rolling.policies.type = Policies 
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy 
appender.rolling.policies.time.interval = 1 
appender.rolling.policies.time.modulate = true 
**appender.rolling.policies.size.type = SizeBasedTriggeringPolicy 
appender.rolling.policies.size.size = 100KB** 

然後,我更改ElasticSearch上的調試日誌記錄級別。

PUT /_cluster/settings 
{"transient":{"logger._root":"DEBUG"}} 

這樣,我導致許多日誌並觸發RollingFile Appender及其相關操作。

因此,您可以快速檢查您的log4j2.properties文件而無需等待24小時。

當你要停止你的測試,你必須設置的默認值:

PUT /_cluster/settings 
{"transient":{"logger._root":"ERROR"}} 

問候