使用clojure tools.logging在logback中进行多步骤配置
我正在尝试使用logback&clojure tools.logging在clojure应用程序中使用自定义appender 我的配置如下所示:使用clojure tools.logging在logback中进行多步骤配置,clojure,logback,Clojure,Logback,我正在尝试使用logback&clojure tools.logging在clojure应用程序中使用自定义appender 我的配置如下所示: <appender name="Sentry" class="net.kencochrane.raven.logback.SentryAppender"> <dsn>some-dsn</dsn> </appender> 快速的google搜索会找到一个文档,以编程方式使用JoranConfigu
<appender name="Sentry" class="net.kencochrane.raven.logback.SentryAppender">
<dsn>some-dsn</dsn>
</appender>
快速的google搜索会找到一个文档,以编程方式使用JoranConfigurator执行多步骤配置,但实际上我在tools.logging中没有看到执行多步骤配置的公开方法。除了修改工具和日志记录,还有什么建议吗?我错过了什么明显的东西吗?感谢您的时间。
工具。日志记录不会对底层日志记录系统进行任何配置。在logback的情况下,它只是通过slf4j与日志系统通信。实际日志的配置完全在logback端。一个简单的方法可能是使用logback.xml
config文件和与clojure/tools.logging的logback依赖关系。基于此,您似乎需要以下依赖项:
[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"]
该页面还包含可以使用的Logback XML配置片段。对于MDC属性,您可能需要看一看。这里有一个使用sentry java logback的简单设置,
副署长:
[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>
Kotarak,谢谢你的回复。在这种情况下,错误是由于slf4j的行为而产生的,因为工具。日志记录是目前我与slf4j交互的方式,它似乎是我寻找解决方案的自然场所(请随意不同意)。此外,tools.logging看起来已经与底层实现进行了一定程度的交互,在src/main/clojure/clojure/tools/logging/impl.clj中,我看到它正在测试是否可以从log4j/etc加载类,然后扩展记录器。在我看来,为底层系统提供所需的接口似乎是合理的。如果您看到更好的解决方案LMKFWW,如果您包括logback classic,您将获得logback核心和slf4j api。
<!-- 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>