0

我注意到 Logback 有评估者。我只想包含一个 MDC 字段,如果它存在的话。例如,假设我声明了这个评估器:

  <evaluator name="UID_EVAL">
    <expression>
      if(mdc == null || mdc.get("uid") == null) {
        return false;
      } else {
        return true;
      }
    </expression>
  </evaluator>

然后在模式中,如果该评估者为真,我只想包含该标签:

<pattern>%eval([uid:%mdc{uid}], UID_EVAL) ...more stuff...</pattern>

注意上面的代码不起作用

所以基本上,如果 UID_EVAL 为真,[UID:a string from mdc]就会出现,但如果为假,则什么也不会出现。

有没有更简单的方法?谢谢!

4

1 回答 1

2

评估器用于过滤。在您的情况下,您需要编写一个自定义转换器

于 2018-03-31T11:26:41.727 回答