JBoss JUL 哨兵整合

JBoss JUL Sentry integration

在 JBoss 中将 sentry 与 JUL 集成时,我收到一条错误消息:

The configuration file in 'logging.properties' appears to be a J.U.L. configuration file. The log manager does not allow this type of configuration file. I followed the steps suggested in https://github.com/getsentry/raven-java/tree/master/raven

导致此问题的原因可能是什么? 我的工作体现在 https://github.com/gsvishnugs/wildfly-jul-raven

虽然 WildFly 中使用的 JBoss 日志管理器确实扩展了 JUL,但它不使用 JUL 配置文件。您需要为 JBoss 日志管理器使用不同的属性。虽然不是官方文档,但我确实有一个 gist 解释了所需的格式。

您的文件需要看起来像这样。

logger.handlers=SENTRY_HANDLER
logger.level=WARN

handler.SENTRY_HANDLER=com.getsentry.raven.jul.SentryHandler
handler.SENTRY_HANDLER.properties=dsn,tags
handler.SENTRY_HANDLER.tags=tag1\:value1,tag2\:value2
handler.SENTRY_HANDLER.dsn=https\://test\:test@app.getsentry.com/test

请注意,通过设置 logger.level=WARN,您只会看到来自应用程序的警告消息。此外,通过使用 logging.properties 文件,您将不会在 server.log 或控制台上看到任何消息。

使用以下 jboss-cli 命令启动哨兵连接:

添加新模块

module add --name=com.getsentry.raven --resources=/path/to/jars/raven-7.6.0.jar,/path/to/jars/jackson-core-2.7.3.jar,/path/to/jars/slf4j-api-1.7.21.jar,/path/to/jars/slf4j-jdk14-1.7.9.jar --resource-delimiter=, --dependencies=javax.api    

       

添加自定义处理程序

/subsystem=logging/custom-handler=sentry:add(name=sentry,class=com.getsentry.raven.jul.SentryHandler,module=com.getsentry.raven,enabled=true,formatter=PATTERN,level=WARN,properties=[("dsn" => "https://pub_key:sec_key@app.getsentry.com/app_id")])

添加到根记录器

/subsystem=logging/root-logger=ROOT:add-handler(name=sentry)

建议下载上面新建模块命令中提到的依赖jar。