当前位置: 首页 > 面试题库 >

如何使用Java代码配置Logback以设置日志级别?

潘弘扬
2023-03-14
问题内容

除了将org.springframework.data.document.mongodb日志记录级别设置为,我想使用默认的SLF4J +
Logback配置DEBUG

我该如何使用Java代码呢?

我没有使用XML,而是在运行时做出此决定。


问题答案:

以下内容对我有用,但通常这不是一个好主意。您的代码将取决于Logback(您不能在SLF4J之后选择另一个日志框架)。

final org.slf4j.Logger logger = 
    org.slf4j.LoggerFactory.getLogger("test.package");
if (!(logger instanceof ch.qos.logback.classic.Logger)) {
    return;
}
ch.qos.logback.classic.Logger logbackLogger = 
    (ch.qos.logback.classic.Logger) logger;
logbackLogger.setLevel(ch.qos.logback.classic.Level.TRACE);
logger.trace("some log");


 类似资料:
  • 我使用的是WebLogic10.3.6,我不能用给定的logback.xml为2个不同的追加器(com.my&root)控制不同的日志级别,我只希望文件追加器有跟踪级别,而在Weblogic终端下没有任何跟踪级别。问题是我在这两个方面得到相同的输出。

  • 我在我的应用程序中使用Jetty http客户端。我也在使用带有logback的SLF4J。 如何将Jetty的总体日志记录级别设置为Info?

  • 我想更改quarkus应用程序的日志级别,在我可以找到任何引用的地方,它都指向application.properties文件。 我需要任何额外的扩展来让它工作吗? 我读过这个问题,但对我不起作用。我真的不知道,我从Quarkus bootstrap创建了一个简单的应用程序,但我仍然有同样的行为。

  • 我有一个多线程Java应用程序,每个线程都是一个扩展基类的类。其中一个线程偶尔会给基类中的一个方法大量机器生成的数据,而其他线程只给出少量的人类类型数据。我想在比机器数据更高的日志级别上记录这些人类类型的消息,但是由于基类是所有线程的一部分,我无法在代码中区分出来。 一种解决方案是通知扩展类中的基类在不同的级别上登录,但是我必须将这些知识硬编码到应用程序中,这很难看。 我想做的是通过我的logba

  • 问题内容: log4j具有属性,可以帮助用户指示实际使用哪个配置文件来配置日志记录系统。 我还没有找到与(否则更高级的)Logback日志记录框架等效的东西。有什么方法可以在运行时打印(用于诊断目的)Logback用来引导自身的配置文件? [编辑]澄清一下,理想情况下,我想要一个不需要我修改配置文件本身的解决方案(例如,由于组装错误的第三方JAR可能会被错误地提取,并且在我的注销配置之前) XML

  • 问题内容: 我目前正在使用log4j的项目中。我正在运行一个测试用例(junit),并希望将日志级别设置为跟踪,以便我可以查看所有值是否正确。在项目中使用日志记录的类包含如下一行: 并使用类似这样的命令进行实际调试 我以前从未使用过log4j,有人知道我该如何仅为测试用例更改日志级别,最好仅通过在Eclipse的运行配置对话框中定义一个参数即可。 问题答案: 使用另一个配置文件 也许您可以指向另一