java - 如何使用 Java Spring Boot 中的 Sentry Logback 日志集成实现 SENTRY_TAGS 的环境变量插值?
问题描述
使用环境(shell)变量时,它们是通过 sentry logback 集成添加和发送的。
但是,有一个很大的警告,它们不是插值的。
SENTRY_DSN=https://xxxxxxxx@sentry.io/xxxxxx
SENTRY_TAGS=app:MyApplication,host:$HOSTNAME,project:${CI_PROJECT_NAME},branch:${CI_COMMIT_REF_NAME}
SENTRY_ENVIRONMENT=${CI_COMMIT_REF_NAME}
即使这些变量有值,也会发生这种情况,它不会被替换。
既$HOSTNAME
不会也${CI_COMMIT_REF_NAME}
不会被解决/替换。它将导致刚刚逐字添加的字符串并发送到哨兵,如屏幕截图所示:
logback-spring.xml:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="Sentry" class="io.sentry.logback.SentryAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>WARN</level>
</filter>
</appender>
<root level="INFO">
<!-- Log both to console(collected by SumoLogic and Cloudwatch) and Sentry -->
<appender-ref ref="CONSOLE"/>
<appender-ref ref="Sentry"/>
</root>
</configuration>
本文解释了如何使用 logback 集成,但没有提及 SENTRY_TAGS 或其他变量 https://blog.sentry.io/2016/01/28/capturing-java-exceptions
解决方案
推荐阅读
- c++ - 如何正确重载 << 运算符以返回 int 值?
- java - 尝试导出到文本文件。无法弄清楚如何在 Jtable 信息之间添加其他信息
- three.js - 从搅拌机导入网格会导致变形
- python - 在 windows 中使用 pip 命令安装 Flask 时出错
- android - 手机不断显示(允许 USB 调试?)带有 RSA 密钥指纹的对话框
- bash - getops 参数的问题
- algorithm - 简化的 3 路分区排序的时间复杂度
- algorithm - 内存黑客中的指针扫描
- r - 使用R的分段样条的弧长
- java - Jersey NameBinding 过滤器未在子资源方法上调用