Как сократить имя потока в логах logback? - PullRequest
12 голосов
/ 08 мая 2011

Вы можете сократить имя регистратора, используя синтаксис% logger {x}, где x контролирует процедуру сокращения.Можно ли таким же образом сократить название темы?

Ответы [ 5 ]

22 голосов
/ 20 марта 2013
[%.7thread]

При этом будут напечатаны последние 7 символов имени потока.

Конечные символы имени потока часто интереснее, чем символы в начале имени потока,: -)

Вы можете прочитать о модификаторе максимальной ширины поля в документации по выходу из системы.

5 голосов
/ 30 августа 2011

Вы можете использовать:

[%.-10t]

Это выражение печатает первые 10 символов имени потока.

2 голосов
/ 16 августа 2018

Для печати 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  
1 голос
/ 07 июня 2017

Как насчет этого в начале вашей темы?

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
1 голос
/ 30 августа 2011

Не думаю, что есть эквивалент синтаксиса {x} для %thread, но вы можете использовать что-то вроде %.-5thread, чтобы вывести только первые 5 символов имени потока, но только 5, а несокращенная версия (очевидно, отрегулируйте число в соответствии с вашими потребностями).

...