当前位置: 首页 > 知识库问答 >
问题:

slf4j/logback--某些线程的不同日志级别

赫连俊悟
2023-03-14

我最近将应用程序从log4j更改为logback/slf4j。一切都工作得很好,但我想实现一些具体的东西。

我正在开发的应用程序是一个web应用程序。在我们的生产环境中,日志级别是on info。不时有票进来让我们的服务团队处理。如果我们的服务团队在复制票据时,他们可以将日志级别放在跟踪上,只用于他们的测试请求,那就太好了。这样,日志文件就不会随着当时所有其他请求的到来而被修改

我们已经使用标头“x-tracingcontext-active=true”将某些额外的数据写入日志。我的想法是增加loglevel,以便在该请求(线程)的标头为“true”时进行跟踪。

有没有一种方法可以做到这一点,而不需要创建我自己的日志实现或在每个类中编写这个逻辑?

有什么想法吗?

共有1个答案

郦昆
2023-03-14

虽然这并不完全是您想要的(实现起来也不简单),但您可以将level设置为跟踪所有内容并过滤掉“错误”线程。性能可能/将会非常糟糕,但是如果您只在这些特殊请求的持续时间内颠簸日志级别,并在之后重新设置日志级别,那么它应该不会那么糟糕。

 类似资料:
  • 之所以使用Logback,是因为我们需要一些log4j没有提供的附加程序。 要求:对于日志级错误,我们希望使用自定义模式,它将根据堆栈跟踪添加信息。

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

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

  • 正如logback的文档所说,大多数appender本质上是同步的,但是如果我们将appender包装在异步appender中,那么线程将把数据推送到BlockingQueue中,如果有,比如说X-logback线程将从BlockingQueue获取数据并将其追加。这就是我对它的基本理解。 尝试使用JstackThread转储来测试这个。但是空手返回,没有回退线程的线索。 作为参考,请检查下面lo

  • 如何编写一个简单的log4j2.xml文件,将不同级别的日志放入不同的文件中? 例如,我们有错误日志,任何信息日志,我需要将所有错误日志消息推入一个日志文件,所有信息日志消息推入另一个文件。 我怎么做?