gpt4 book ai didi

java - 为 logback.xml Sentry appender 动态设置 Sentry 的环境变量

转载 作者:行者123 更新时间:2023-12-05 07:15:40 25 4
gpt4 key购买 nike

我的应用程序正在使用 slf4j,自然地,我有一个 logback.xml 文件。我尝试向该文件添加一个 Sentry 附加程序。这是我的 logback.xml 文件。

<appender name="CONSOLE-INFO" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<target>System.out</target>
<encoder>
<pattern>%d %p %c{1.} %m%n</pattern>
</encoder>
</appender>
<appender name="CONSOLE-ERROR" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<target>System.error</target>
<encoder>
<pattern>%d %p %c{1.} %m%n%ex{100}</pattern>
</encoder>
</appender>
<appender name="SENTRY" class="io.sentry.logback.SentryAppender">
<dsn>
https://...Sentry dsn
</dsn>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<encoder>
<pattern>%d %p %c{1.} %m%n%ex{100}</pattern>
</encoder>
</appender>
<logger name="kafkaOrderLogger" level="info" additivity="false">
<appender-ref ref="CONSOLE-INFO"/>
</logger>
<logger name="kafkaOrderErrorLogger" level="error" additivity="false">
<appender-ref ref="CONSOLE-ERROR"/>
</logger>
<logger>
<appender-ref ref="SENTRY"/>
</logger>

<root level="info">
<appender-ref ref="CONSOLE-INFO"/>
<appender-ref ref="CONSOLE-ERROR"/>
<appender-ref ref="SENTRY"/>
</root>

我的应用程序在部署前进行了 docker 化,作为我们的 ci/cd 的一部分,它被部署在三个不同的环境中,即预演和生产环境。问题是我只能通过应用程序根目录下的属性文件提供变量。该属性文件将根据部署环境填充值这意味着我不能在资源文件夹中自动填充 sentry.properties。我想要的是设置 Sentry 环境,最好不要像 slf4j 附加程序的全部要点那样接触代码。

最佳答案

我们使用由 sentry logback 集成自动导入的环境(shell)变量。

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} 都不会被解析。它将导致字符串刚刚逐字添加并发送到 Sentry ,如屏幕截图所示:

Output result

关于java - 为 logback.xml Sentry appender 动态设置 Sentry 的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59543580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com