使用环境(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