java 日志slj4j_java – SLF4J – 无论日志级别如何都记录

在我的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”的所有警告和消息:

STATUS

ACCEPT

NEUTRAL

WARN

${pattern}

基本上,你有记录器的级别是DEBUG所以一切都进入appender,然后在appender做进一步filtering以获得你正在寻找的确切行.如果你试图为不同的类提供更多不同的日志记录级别,它可能会变得有点棘手,但Logback为过滤器提供了很大的灵活性(如果需要,你甚至可以制作自己的过滤器),这样可以处理几乎所有需要的东西.

标签:java,slf4j,logback,logging

来源: https://codeday.me/bug/20190708/1402525.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值