您可以使用 %logger{x} 语法缩短记录器的名称,其中 x 控制缩短过程。有没有办法以同样的方式缩短线程的名称?
问问题
11717 次
5 回答
31
于 2013-03-20T03:17:54.723 回答
6
您可以使用:
[%.-10t]
此表达式打印线程名称的前 10 个字符。
于 2011-08-30T10:14:51.803 回答
3
要打印最后 7 个字符和 Rightpad 空格:
[%-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
于 2018-08-16T12:25:43.233 回答
1
我不认为有等效的{x}
语法 for %thread
,但您可以使用类似%.-5thread
打印线程名称的前 5 个字符,但只打印 5 个字符,而不是缩短版本(显然,根据您的需要调整数字) .
于 2011-08-30T10:09:29.230 回答
1
在你的线程开始时这个怎么样?
if (Thread.currentThread().getName().split("-").length > 1) {
String threadName = Thread.currentThread().getName();
threadName = "thread" + threadName.split("-")[3];
Thread.currentThread().setName(threadName);
}
然后在你的 logback.xml 中:
[%-8thread] %msg%n
...你会得到这样的东西:
[main ] Process started
[thread1 ] Thread started
[thread2 ] Thread started
[thread1 ] Thread ended
[thread1 ] Thread started
[thread2 ] Thread ended
[thread2 ] Thread started
[thread1 ] Thread ended
[thread2 ] Thread ended
[thread3 ] Thread ended
[thread4 ] Thread ended
[thread5 ] Thread ended
[main ] Process ended
于 2017-06-07T10:31:19.427 回答