【问题标题】:JBoss JUL Sentry integrationJBoss JUL Sentry 集成
【发布时间】:2016-08-29 16:39:12
【问题描述】:
【问题讨论】:
标签:
java
jboss
wildfly
sentry
【解决方案1】:
使用以下 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。
【解决方案2】:
虽然 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 或控制台上看到任何消息。