spring - 无法从 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 似乎。
解决方案
推荐阅读
- java - 根据标签值的变化将 xml 拆分为更小的
- android - Android Fragment onClick 按钮打开具有相同活动的新 Fragment
- java - 无法使用无头模式 Selenium 定位元素
- excel - 如果用户尝试在受保护的单元格中写入,则自定义消息
- msbuild - 使 WIX 安装程序将文件放置在 AppData 中
- c# - c# 通过对象拆箱
- azure - 如何在 azure 中构建 200 个本地数据库?
- php - 如何在 MySQL 中使用带有连接的 CodeIgniter 使用 CASE
- c# - 我如何让用户将字符串添加到数组中,而其中已经存在字符串?(Windows 窗体)
- jquery - 添加、更新和删除 jQuery 代码不起作用