java – SLF4J – 无论日志级别如何都记录
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – SLF4J – 无论日志级别如何都记录,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1724字,纯文字阅读大概需要3分钟。
内容图文
![java – SLF4J – 无论日志级别如何都记录](/upload/InfoBanner/zyjiaocheng/772/8cd8db86f2d24bce9e7ba19651506a66.jpg)
在我的Java应用程序中,我使用SLF4J Logback进行日志记录.我在生产环境中使用DEBUG级别日志记录进行开发和ERROR级别日志记录.但是,无论日志级别如何,我都希望在任何情况下记录一些消息(类似于System.out.println(“Some Message”)但使用logger).
有没有实用的方法来实现这一目标?我可以使用错误或更低级别,但我想要做的是提供一些信息,所以logger.error(“一些消息”);在语义错误,这不是一个错误.
我可以在我的logback.xml中为我的类/类定义另一个记录器,但这不方便.
实现这一目标的正确方法是什么?
解决方法:
这就是SLF4J / Logback的精彩“标记”功能非常方便的地方.假设您要将所有警告/错误以及任何特殊“状态”消息记录到控制台.
你可以让一个类做这样的记录:
public class MyClass {
private static final Marker status = MarkerFactory.getMarker("STATUS");
private static final Logger logger = LoggerFactory.getLogger(MyClass.class);
public void doSomething() {
logger.info(status, "Beginning");
logger.info("Regular info log");
logger.warn("Warning");
logger.info(status, "Done");
}
}
然后,在logback.xml中,过滤以显示标记为“STATUS”的所有警告和消息:
<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>STATUS</marker>
</evaluator>
<OnMatch>ACCEPT</OnMatch>
<OnMismatch>NEUTRAL</OnMismatch>
</filter>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>WARN</level>
</filter>
<encoder>
<pattern>${pattern}</pattern>
</encoder>
</appender>
基本上,你有记录器的级别是DEBUG所以一切都进入appender,然后在appender做进一步filtering以获得你正在寻找的确切行.如果你试图为不同的类提供更多不同的日志记录级别,它可能会变得有点棘手,但Logback为过滤器提供了很大的灵活性(如果需要,你甚至可以制作自己的过滤器),这样可以处理几乎所有需要的东西.
内容总结
以上是互联网集市为您收集整理的java – SLF4J – 无论日志级别如何都记录全部内容,希望文章能够帮你解决java – SLF4J – 无论日志级别如何都记录所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。