空线程上下文在 log4j2 中支持场景处理



我正在尝试迁移到log4j2。在滚动文件追加器中,我添加如下:

<PatternLayout>
    <pattern>[%d{MM/dd/yy HH:mm:ss:SSS z}] %-18.18t %-35.35c{1} %-5p (%F:%L) %m t %x %n</pattern>
</PatternLayout>

我们知道 %x 用于将堆栈元素打印到每个记录器语句的末尾。

现在,如果我的堆栈最初是空的,它会给我空的大括号,如下所示。

[01/10/17 12:17:37:116 IST] main               Example2                            WARN  (Example2.java:52) 10 is the number     [] 

[01/10/17 12:17:37:116 IST] 主要示例 2 警告(示例 2.java:52) 10 是数字 []

那么我该如何处理这个空堆栈场景呢?

您可以使用

PatternLayout的notEmpty{pattern}模式转换器:

这将输出评估模式的结果,当且仅当模式中的所有变量都不为空。

例如:

%notEmpty{[%x]}

别名:变量不为空{模式},varsNotEmpty{pattern},notEmpty{pattern}

你可以使用 %equals{pattern}{test}{substitution} from https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout

例如-

%

equals{%x}{[]}{}

这会将 [] 替换为空字符串。为我工作。

相关内容

最新更新