gpt4 book ai didi

java - 使 logback 模式部分可选?

转载 作者:搜寻专家 更新时间:2023-10-30 20:02:11 25 4
gpt4 key购买 nike

是否可以根据属性制作部分 logbacks 模式布局?例如仅在 %X{bdid} 存在的情况下显示 bdid (...)?

这个附加程序

<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>bdid\(%X{bdid}\) - %d{HH:mm:ss.SSS} %msg%n</pattern>
</encoder>
</appender>

打印

bdid(0b5d3877-f3dd-4189-8b1b-489c8b617f2a) 18:22:25.206 如果 bdid 存在,但打印

bdid() 18:22:20.928 如果没有。

如何在我的日志中省略空的 bdid()?

最佳答案

您可以使用replace 功能,详细信息在文档中here .一个工作示例如下:

logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%replace(bdid\(%X{bdid}\)){'bdid\(\)', ''} - %d{HH:mm:ss.SSS} %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
</root>

</configuration>

测试函数

public class PatternTest
{
@Test
public void test()
{
Logger logger = LoggerFactory.getLogger(PatternTest.class);
MDC.put("bdid", "hola");
logger.info("Check enclosed.");
MDC.remove("bdid");
logger.info("Check enclosed.");
}
}

测试输出

bdid(hola) - 18:40:40.233 Check enclosed.
- 18:40:40.234 Check enclosed.

关于java - 使 logback 模式部分可选?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33085892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com