您可以使用%logger {x}语法缩短记录器的名称,其中x控制缩短过程。有没有办法以同样的方式缩短线程的名称?
答案 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