是否可以根据属性制作部分回溯模式布局? 例如在%X {bdid}存在的情况下显示bdid(...)?
这个追加者
bdid() 18:22:20.928
打印
{{1}}如果bdid存在,则打印
{{1}}如果没有。
如何在日志中省略空bdid()?
答案 0 :(得分:6)
您可以使用替换功能,详情请参阅文档here。一个工作示例如下:
<?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.