2

我正在尝试使用 logback 和 clojure tools.logging 在 clojure 应用程序中使用自定义附加程序。

我的配置如下所示:

<appender name="Sentry" class="net.kencochrane.raven.logback.SentryAppender">
    <dsn>some-dsn</dsn>
</appender>

这会导致以下运行时错误:

 The following loggers will not work because they were created during the default configuration phase of the underlying logging system.....

一个快速的谷歌搜索发现一个文档以编程方式使用 JoranConfigurator 来执行多步骤配置,但我实际上没有在 tools.logging 中看到一个公开的方法来执行多步骤配置。除了修改 tools.logging 之外还有什么建议吗?我错过了一些明显的东西吗?谢谢你的时间。

4

3 回答 3

1

tools.logging不对底层日志系统进行任何配置。在 logback 的情况下,它只是通过 slf4j 与日志系统对话。实际日志的配置完全在 logback 端。

于 2013-08-14T05:47:11.400 回答
0

sentry-java-logback这是一个使用, 和 deps的简单设置:

[org.clojure/tools.logging  "0.4.1"]    
[ch.qos.logback/logback-classic  "1.2.3"]    
[io.sentry/sentry-logback "3.2.0"]

和 logback.xml:

<!-- Sentry -->
<appender name="SENTRY" class="io.sentry.logback.SentryAppender">
    <encoder>
        <pattern>${defaultPattern}</pattern>
    </encoder>
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>ERROR</level>
    </filter>
    <options>
        <dsn>https://........</dsn>
        <release>1.0.0</release>
        <serverName>ABCDE</serverName>
        <environment>production</environment>
    </options>
    <minimumBreadcrumbLevel>DEBUG</minimumBreadcrumbLevel>
</appender>

<!-- ....THIS MIGHT CHANGE.... -->
<root level="DEBUG">
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="SENTRY"/>
</root>

你可以阅读更多关于哨兵文档

于 2020-12-01T08:59:02.817 回答
0

一种简单的方法可能是将logback.xml配置文件和 Logback 依赖项与 clojure/tools.logging 一起使用。根据Sentry 文档,您似乎需要以下依赖项:

[org.clojure/tools.logging "0.3.1" :exclusions [org.clojure/clojure]]
[org.slf4j/slf4j-api       "1.7.25"]
[org.codehaus.janino/janino     "3.0.7"]  ; for conditional config processing
[ch.qos.logback/logback-classic "1.2.3"]
[ch.qos.logback/logback-core    "1.2.3"]
[com.getsentry.raven/raven-logback "8.0.2"]

Sentry 文档页面还包含您可以使用的 Logback XML 配置片段。对于 MDC 属性,您可能需要查看Cambium

于 2017-05-03T19:43:04.177 回答