如何缩短logback日志中的线程名称?

时间:2011-05-07 21:29:06

标签: java logging logback

您可以使用%logger {x}语法缩短记录器的名称,其中x控制缩短过程。有没有办法以同样的方式缩短线程的名称?

5 个答案:

答案 0 :(得分:22)

[%.7thread]

这将打印线程名称的最后 7个字符。

线程名称的尾随字符通常比线程名称开头的字符更有趣。 : - )

您可以在logback docs中阅读maximum field width modifier

答案 1 :(得分:4)

您可以使用:

[%.-10t]

此表达式打印线程名称的前10个字符。

答案 2 :(得分:1)

我认为{x}的{​​{1}}语法不等同,但您可以使用类似%thread的内容来打印线程名称的前5个字符,但只有5,而不是缩短版本(显然,根据您的需要调整数量)。

答案 3 :(得分:1)

在你的主持人的开头呢?

mymap:[TITLE: [TITLE1, TITLE2, NA, TITLE4, TITLE5]]

然后在你的logback.xml中:

if (Thread.currentThread().getName().split("-").length > 1) {
    String threadName = Thread.currentThread().getName();
    threadName = "thread" + threadName.split("-")[3];
    Thread.currentThread().setName(threadName);
}

......你会得到这样的东西:

[%-8thread] %msg%n

答案 4 :(得分:1)

要打印最后7个字符和带有空格的右键盘:

[%-7.7thread] 

输出:

14:22:43.097 [main   ] DEBUG 
14:22:43.341 [main   ] INFO  
14:22:43.341 [main   ] INFO  
14:22:45.399 [-target] INFO