我如何向SLF4J提供自己的MDCADAPTER



我正在使用slf4j和logback为我的一组微服务提供记录服务。

我想确保我添加到MDC 始终的任何条目都具有较低的案例名称,因此我正在调查用类似的实现来代替logbackmdcadapter类小写。

这是一种明智的方法吗?如果是这样,我该如何优先使用我的MDC适配器?

这是我最终使用的解决方案。

在项目中创建一个名为org.slf4j.impl.StaticMDCBinder的类。这可以是用SLF4J发货的org.slf4j.impl.StaticMDCBinder的副本。

更改该类以返回您自己的MDCAdapter实例。众所周知,我将使用记录作为基础记录系统,所以我只是对ch.qos.logback.classic.util.LogbackMDCAdapter进行了分类,并覆盖了put方法将钥匙强加于小写。

粘合剂:

public class StaticMDCBinder {
   public static final StaticMDCBinder SINGLETON = new StaticMDCBinder();
   private StaticMDCBinder() {
   }
   public MDCAdapter getMDCA() {
      return new DavesMDCAdapter();
   }
   public String getMDCAdapterClassStr() {
       return DavesMDCAdapter.class.getName();
   }
}

和MDC适配器

public class DavesMDCAdapter extends LogbackMDCAdapter {
public void put(String key, String val) throws IllegalArgumentException{
    super.put(key.toLowerCase(),val);
}

相关内容

  • 没有找到相关文章

最新更新