首页 > 解决方案 > 无法从 logback 在 logstash 中设置 attrs

问题描述

我想根据我的应用程序的环境来控制我的日志的索引。例如,我有some-app-dev, some-app-test, some-app-uat。在我的 logback.xml 中,我配置了一个 appender:


    <appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>${LOGSTASHHOST}:${LOGSTASHPORT}</destination>
        <encoder class="net.logstash.logback.encoder.LogstashEncoder">
            <customFields>{"appname":"some-app-test"}</customFields>
        </encoder>
    </appender>

然后在我的pipline.conf文件中我有:

...
output {
    elasticsearch {
        index => "%{[attrs][appname]}-%{+YYYY.MM.dd}"
    }
}

但是当我去 Kibana 并检查我的索引时,我看到:%{[attrs][appname]}-2020.01.20.

因此,%{[attrs][appname]}没有正确替换,并且被视为文字,我不知道为什么。我似乎无法从我的 Spring App 记录器中发送任何属性到 logstash 似乎。

标签: springlogstashlogback

解决方案


推荐阅读