Я бы хотел объяснить мою проблему непосредственно на примере. Пожалуйста, добавьте комментарии, если требуется также другая информация.
У меня небольшое приложение (SpringBoot + Java), и оно использует ThreadPool для выполнения нескольких задач. Допустим, в моем пуле 2 потока. Прямо сейчас log4j используется для регистрации. Он записывает журналы всех потоков в один файл, а данные журнала всех двух потоков чередуются.
Так что каждый поток работает как -
[Thread-1][08:15:00] entered into application
[Thread-1][08:15:00] entered method A
[Thread-1][08:15:05] exit method A
[Thread-1][08:15:10] entered method B
[Thread-1][08:15:15] exit method B
[Thread-1][08:15:30] exit from application
[Thread-2][08:15:01] entered into application
[Thread-2][08:15:01] entered method A
[Thread-2][08:15:04] exit method A
[Thread-2][08:15:11] entered method B
[Thread-2][08:15:12] exit method B
[Thread-2][08:15:22] exit from application
но мой лог-файл содержит эти записи на основе отметки времени-
[Thread-1][08:15:00] entered into application
[Thread-1][08:15:00] entered method A
[Thread-2][08:15:01] entered into application
[Thread-2][08:15:01] entered method A
[Thread-2][08:15:04] exit method A
[Thread-1][08:15:05] exit method A
[Thread-1][08:15:10] entered method B
[Thread-2][08:15:11] entered method B
[Thread-2][08:15:12] exit method B
[Thread-2][08:15:14] exit from application
[Thread-1][08:15:15] exit method B
[Thread-1][08:15:30] exit from application
Я хочу, чтобы мой файл журнала печатал по ниткам, а не по меткам времени. Я хочу, чтобы мой файл журнала полностью печатал каждую ветку перед началом другой. Как я мог достичь этого.
Я уже искал и нашел ниже статьи как ближайший, но я не хочу, чтобы другие файлы журнала-
Как записать несколько потоков в разные файлы журнала?
Мне нужно вывести все данные журнала в один файл журнала, сгруппированный по имени потока и отсортированный по времени начала потока.