Подтвердить что ты не робот

Как сократить имя потока в журналах журнала?

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

4b9b3361

Ответ 1

[%.7thread]

Здесь будут напечатаны последние 7 символов имени потока.

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

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

Ответ 2

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

[%.-10t]

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

Ответ 3

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

Ответ 4

Как насчет этого в начале вашего потока?

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