2

我正在尝试迁移到 log4j2。在 RollingFile Appender 我添加如下:

<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 用于将堆栈元素打印到每个 logger 语句的末尾。

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

[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] main Example2 WARN (Example2.java:52) 10 是数字 []

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

4

1 回答 1

2

您可以使用PatternLayoutnotEmpty{pattern}模式转换器:

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

例如:

%notEmpty{[%x]}

别名:variablesNotEmpty{pattern}、varsNotEmpty{pattern}、notEmpty{pattern}

于 2017-01-10T16:39:54.287 回答