gpt4 book ai didi

java - 如何将选定的日志消息复制到 sysout?

转载 作者:行者123 更新时间:2023-11-30 07:39:08 25 4
gpt4 key购买 nike

在我的代码中想要输出控制台消息/并且/将其记录下来的地方,我当前正在调用 System.out.println/and/和 log.info。

这当然是不可取的,我想解决它。我一直在查看 slf4j/logback 中的标记接口(interface),想知道这是否适合此任务,即获取所有标记的日志消息并将其副本发送到 sysout?

或者有更好的方法吗?

最佳答案

是的,我处理此类事情的方法是使用奇妙的标记机制:

要记录:

private static final Marker notification = MarkerFactory.getMarker("NOTIFICATION");
private static final Logger log = LoggerFactory.getLogger(MyClass.class);
...
log.info(notification, "Important message to go everywhere");

在 logback.xml 中,类似:

<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
<marker>NOTIFICATION</marker>
</evaluator>
<OnMatch>ACCEPT</OnMatch>
<OnMismatch>NEUTRAL</OnMismatch>
</filter>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<encoder>
<pattern>${pattern}</pattern>
</encoder>
</appender>

我在此处展示的用例显示了所有错误以及控制台上标记为“通知”的任何内容,但您可以调整过滤器以显示或隐藏您要查找的任何内容。

关于java - 如何将选定的日志消息复制到 sysout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34945123/

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