MDC值返回空

时间:2017-10-18 17:03:56

标签: logging dropwizard mdc

我正在开发一个dropwizard项目。在config.yml文件中,我使用MDC变量指定控制台appender的日志格式。 E.g

   appenders:
   - type: console
      logFormat: "date=%d{yyyy-MM-dd HH:mm:ss} username=%mdc{userName} %t %logger{5} - %X{code} message=%msg %n"
      threshold: ${CONSOLE_LOG_LEVEL:-INFO}

但是,MDC变量在日志中返回一个空值。 但我可以通过MDC.get(“userName”)在代码中的其他位置成功检索。

1 个答案:

答案 0 :(得分:0)

我观察到,返回空值有两种可能性。

  1. 在您的情况下,首先在相应的代码文件中添加记录器

    private static final Logger LOGGER = LoggerFactory.getLogger(YourClassName.class);
    

    之后添加MDC.put(“key”,“your values”)

    最后必须调用任何记录器方法,比如说下面添加语句

    LOGGER.info("Some log Statemenet"); OR debug/error method>=.
    
  2. 从记录器配置文件中删除%mdc并尝试使用%X{userName}

  3. 试试并告诉我。