java - log4j2 中的空 Threadcontext 大括号场景处理

标签 java stack log4j2 threadcontext

我正在尝试迁移到 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 用于将堆栈元素打印到每个记录器语句的末尾。

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

[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 是数字 []

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

最佳答案

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

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

例如:

%notEmpty{[%x]}

别名:variablesNotEmpty{pattern}, varsNotEmpty{模式}, notEmpty{pattern}

关于java - log4j2 中的空 Threadcontext 大括号场景处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41568900/

相关文章:

java - SonarQube:获取错误报告在分析过程中找不到找不到路径或找不到目录和类

java - 使用堆栈 noAdajacentDuplicates

c - RSP 不指向栈顶?

python - 列表的哪一端是顶部?

java - 如何避免使用 log4j2 重复记录唯一 ID

java - 带有 log4j2 的 Spring Boot AmqpAppender

logging - 避免出现 log4j2 配置调试消息

java - 没有方案 :hdfs and Class org. apache.hadoop.DistributedFileSystem 的文件系统未找到

java - BufferedInputStream 如何让读操作更快?

java - 检查 fragment 是否存在并重用它