elasticsearch - log4j2.properties的每日翻转不起作用

标签 elasticsearch logging log4j2

我想通过以下方式更改ElasticSearch的log4j2配置。 ElasticSearch的日志应保存在以下目录中:/path/to/log/{year}/{month}/{day}/cluster_name.log,但TimeBasedTriggeringPolicy仅在一天结束后才进行翻转。我一直在尝试使用TimeBasedRollingPolicy,但无法通过* .properties文件进行配置。我将整个log4j2.properties重写为log4j2.xml文件,但是ElasticSearch需要log4j2.properites。最后,我决定从记录字母日的日志转到适当的目录。我返回到TimeBasedTriggeringPolicy,并使用了这个filePattern /path/to/log/%d{yyyy/MM/dd}/cluster_name.log,但仍然无法正常工作。

配置文件的较大部分:

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

最佳答案

我认为%d{yyyy/MM/dd}模式将创建具有类似于2017/09/19的名称的目录,该目录无效。这就是为什么它不起作用。

试试下面的filePattern-

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

它将旋转日志文件,如下所示-

/path/to/log/{year}/{month}/{day}/cluster_name_{date}.log



必须在文件名中注明日期。没有这个,它可能行不通。

关于elasticsearch - log4j2.properties的每日翻转不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46221268/

相关文章:

java - Elasticsearch 嵌套映射查询不起作用 - JAVA?

java - 在外部存储(SD 卡)上写入日志时如何安全地使用 android-logging-log4j?

php - CodeIgniter 错误日志信息 + 错误

gradle - Spring Boot 中的 Log4j

java - 找不到 log4j2 配置文件

java - ElasticSearch 5.4.1 Java API : Error in updateResponse. getResult() 为空,

elasticsearch - 让kibana 4发送警报或在特定条件下采取措施的任何方式

elasticsearch - Querydsl与ES Querydsl

java - 从 JSP/Servlet 编写简单日志到 UNIX/Shell 脚本

java - Log4j2自定义日志级别过滤到不同的文件