如何在elasticsearch中测试日志滚动和删除?

时间:2017-06-19 07:10:17

标签: elasticsearch

我使用的是来自Elasticsearch doc的以下配置。而不是等待7D或一天,我该如何立即测试?

下面是我的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分钟的日志会发生删除。

1 个答案:

答案 0 :(得分:2)

是的,有办法。

实际上,我使用大小触发策略强制或导致删除策略,因此测试我的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"}}

此致