gpt4 book ai didi

logging - 我如何决定哪些 appender 对 `clojure.tools.logging` 的日志起作用?

转载 作者:行者123 更新时间:2023-12-04 05:02:42 25 4
gpt4 key购买 nike

在我的 project.clj :dependencies ,我有:

[org.clojure/tools.logging "0.2.6"]
[ch.qos.logback/logback-classic "1.0.11"]
[net.logstash.logback/logstash-logback-encoder "1.0"]

在我的 core.clj ,我有:
(clojure.tools.logging/info "both stdout and stash")
(clojure.tools.logging/log "stash" :info nil "only stash?")

在我的资源路径上,我有一个文件 logback.xml ,其中我定义了两个附加程序 stdoutstash都附加到根:
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">

<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>

<appender name="stash" class="ch.qos.logback.core.FileAppender">
<file>example.log</file>
<encoder class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>

<root level="all">
<appender-ref ref="stash" />
<appender-ref ref="stdout" />
</root>

</configuration>

当我运行我的程序时,我在 example.log 中看到以下(所需的)输出:
{"@timestamp":"2013-04-10T12:42:16-04:00","@message":"both stdout and stash","@fields":{"logger_name":"scheduler.core","thread_name":"main","level":"INFO","level_value":20000}}
{"@timestamp":"2013-04-10T12:42:16-04:00","@message":"only stash?","@fields":{"logger_name":"stash","thread_name":"main","level":"INFO","level_value":20000}}

但是,我看到以下两行都打印到标准输出——我只想看到第一行:
12:42:16.573 [main] INFO  scheduler.core - both stdout and stash
12:42:16.641 [main] INFO stash - only stash?

如何使用 clojure.tools.logging 选择要登录的 appender ?具体来说,与 stdoutstash附加在根目录下,我如何仅登录到 stash ?

最佳答案

logback 应用所有与第一个匹配的事件附加程序,因此您的根级别将应用于所有消息。
<appender-ref ref="stdout" />离开根级别并专门添加一个记录器来使用它。

 <logger name="project.core" level="INFO"> 
<appender-ref ref="stash" />
</logger>

<root level="ERROR">
<appender-ref ref="stdout" />
</root>

关于logging - 我如何决定哪些 appender 对 `clojure.tools.logging` 的日志起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15931881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com