【问题标题】:log4j2.properties daily rollover doesn't worklog4j2.properties 每日翻转不起作用
【发布时间】:2018-02-23 13:34:35
【问题描述】:

我想通过以下方式更改 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 并使用了这个 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

【问题讨论】:

    标签: elasticsearch logging log4j2


    【解决方案1】:

    我认为%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

    在文件名中给出日期是强制性的。没有这个,它可能无法工作。

    【讨论】:

    • 仍然没有创建任何目录。
    猜你喜欢
    • 2013-09-06
    • 2016-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-21
    • 1970-01-01
    • 2019-08-31
    相关资源
    最近更新 更多