Как сократить имя потока в журналах logback?
вы можете сократить имя регистратора, используя синтаксис %logger{x}, где x управляет процедурой сокращения. Есть ли способ сократить название потока таким же образом?
5 ответов
[%.7thread]
выводит последние 7 символов имени резьбы.
конечные символы имени потока часто более интересны, чем символы в начале имени потока. :-)
вы можете прочитать о модификатор максимальной ширины поля в документах logback.
Я не думаю, что есть эквивалент {x}
синтаксис %thread
, но вы можете использовать что-то вроде %.-5thread
чтобы напечатать только первые 5 символов имени потока, но только 5, а не сокращенную версию (очевидно, настройте номер в соответствии с вашими потребностями).
как насчет этого в начале вашей нити?
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
для печати 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