[log4j] каждый поток в отдельный файл
Напиши свой аппендер, который кладёт ивенты в разные файлы в зависимости от значения Thread.currentThread.
Не очень изящно, но зато это перпендикулярно твоей текущей структуре логов
Не очень изящно, но зато это перпендикулярно твоей текущей структуре логов
Нашёл на класспасе аппендер, который в буфер пишет.
Ты можешь пррграммно конфигурить инстансы логгера, чтобы каждый был со своим аппендером, пишущим в отдельный файл, и логать все ивенты в джобе явно а этот логгер.
У меня была подобная задача, только не с потоками, а с некими сущностями, которые загружались из БД. Поднял документацию по log4j, оказалось, что можно подгрузить property-файл с конфигурацией с указанием подстановочных макросов (при этом дерево настраиваемых логгеров с навешенными аппендерами добавится к существующему). Соответственно, решение может быть простое: подгружаешь конфигурацию. Эту возможность можно применить и для потоков: при старте загружается общая конфигурация, после чего, перед запуском (или в начале работы) каждого потока подгружаешь дополнительную конфигурацию с подставленными макросами имени и/или номера потока.
OFF. logback такое умеет
Библиотека сторонняя, не могу. правильный ответ дал.
Оставить комментарий
kill-still
1) В общем есть класс наследник Tread (некая job-а). Периодически создаётся объект этого класса и запускается. Я хочу, чтобы лог каждого из этих объектов писался в отдельный файл.2) Возможно в будущем я захочу не создавать/уничтожать эти потоки каждый раз, а держать объекты в памяти и периодически запускать. При этом каждый вызов метода run должен идти в отдельный файл.
Не подскажете, как настроить, чтобы выполнялся хотя бы п.1?