gpt4 book ai didi

Logback - 在运行时以编程方式修改 DynamicThresholdFilter (TurboFilter)

转载 作者:行者123 更新时间:2023-12-04 04:33:21 27 4
gpt4 key购买 nike

我们正在使用带有 DynamicThreshholdFilter 定义的 logback,如下所示

<turboFilter class="ch.qos.logback.classic.turbo.DynamicThresholdFilter">
<Key>USER_MDC_KEY</Key>
<DefaultThreshold>DEBUG</DefaultThreshold>
<MDCValueLevelPair>
<value>USER1</value>
<level>DEBUG</level>
</MDCValueLevelPair>
</turboFilter>

有没有办法以编程方式修改 MDCValueLevelPair 的设置。比如修改USER1的级别为INFO。

最佳答案

不可能是修改 动态,因为有一个检查可以防止它。

但是,您可以使用以下内容动态设置它:

Iterator<TurboFilter> it = ((ch.qos.logback.classic.LoggerContext)LoggerFactory.getILoggerFactory()).getTurboFilterList().iterator();
while (it.hasNext()) {
TurboFilter f = it.next();
if (f instanceof DynamicThresholdFilter) {
DynamicThresholdFilter dtFilter = (DynamicThresholdFilter)f;
MDCValueLevelPair pair = new MDCValueLevelPair();
pair.setValue("USER1");
pair.setLevel(Level.INFO);
dtFilter.addMDCValueLevelPair(pair);
}
}

如果您还没有 TurboFilter配置,您可以创建一个新的并将其添加到 LoggerContext .

关于Logback - 在运行时以编程方式修改 DynamicThresholdFilter (TurboFilter),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20177643/

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