Logback:有条件地包含分组令牌吗?

时间:2018-03-26 19:03:42

标签: java log4j logback slf4j janino

我注意到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],但如果为false,则不显示任何内容。

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

1 个答案:

答案 0 :(得分:2)

评估员用于过滤。在您的情况下,您可能想要写一个custom converter