我们有一个Java Wildfly Swarm应用程序,我正在尝试将其配置为报告Sentry事件。
参考版本:
我添加了以下配置:
<!-- pom.xml -->
<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry</artifactId>
<version>1.7.13</version>
</dependency>
# project-defautls.yml
swarm:
logging:
pattern-formatters:
LOG_FORMATTER:
pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p (%t) [%c.%M()] %s%e%n"
console-handlers:
CONSOLE:
named-formatter: LOG_FORMATTER
level: INFO
custom-handlers:
SENTRY:
module: com.sentry.jul
attribute-class: io.sentry.jul.SentryHandler
named-formatter: LOG_FORMATTER
level: INFO
root-logger:
handlers:
- CONSOLE
- SENTRY
<!-- module.xml -->
<module xmlns="urn:jboss:module:1.3" name="com.sentry.jul">
<resources>
<artifact name="io.sentry:sentry:1.7.13" />
</resources>
</module>
# Environment variable
SENTRY_DSN=***********
应用程序正常启动,但是以下代码片段未生成Sentry事件:
try {
throw new Exception("Testing...");
} catch(Exception e) {
logger.log(Level.SEVERE, "ERROR {0}", e.getMessage());
}
另一方面,当我通过code配置Sentry并生成事件时,它工作正常:
Sentry.init(System.getenv("SENTRY_DSN"));
SentryClient sentry = SentryClientFactory.sentryClient();
try {
throw new Exception("Testing...");
} catch(Exception e) {
sentry.sendException(e);
}
出了什么问题?
答案 0 :(得分:0)
调试代码后,我意识到我的模块定义不完整。我不得不添加其他工件和依赖项:
<module xmlns="urn:jboss:module:1.3" name="com.sentry.jul">
<resources>
<artifact name="io.sentry:sentry:1.7.13" />
<artifact name="com.fasterxml.jackson.core:jackson-core:2.8.7" />
</resources>
<dependencies>
<module name="javax.api" />
<module name="javax.servlet.api" />
<module name="org.slf4j"/>
</dependencies>
</module>
我还注意到没有必要保持对Sentry的项目依赖。
仅此而已!