在运行时从哪里获取 Sentry/Raven DSN?

Where to get the Sentry/Raven DSN from at runtime?

Sentry.iorequires a Data source name (DSN) for it's clients to upload exceptions。我不清楚文档

为什么通用文档使用 Javascript,即它仅用于 Javascript 还是一个示例? In the practical example Raven DSN 来自 main 方法的参数。现实中什么时候会出现这种情况?

对于糟糕的文档感到抱歉。实际上,我现在正在努力对它们进行彻底检修。

您是正确的,硬编码 DSN 或从程序参数中手动检索它不是首选。设置 DSN(和其他配置)的首选方法是通过进程环境变量或 Java 系统属性。请参阅此处的示例:https://github.com/getsentry/raven-java/blob/08c45e38a859e222b56d21570d00ad6a1411ebdd/raven-logback/README.md

这样,Raven 客户端代码可以包含在项目中(即使在开源项目中),但是 DSN 的配置在运行时发生,但是管理员更喜欢设置他们的环境(或者根本不配置,如果他们想让 Sentry 处于禁用状态)。

关于另一个问题:DSN 与特定的 Sentry 项目相关联,因此无论哪个最终用户遇到问题,都会汇总该项目中发生的所有异常。