Возможно, вы решите перевернуть проблему: вместо объединения всех частей записи при ведении журнала во время выполнения, консолидируйте их позже во время анализа данных.
Например, у нас есть приложение, которое регистрирует много данных, где важен быстрый ответ. Недавно мы внедрили (изготовленную на заказ) систему, которая регистрирует то, что фактически является реляционной базой данных. Тем не менее, часть его каротажа используется для регистрации; мы просто добавляем данные кортежа в файл журнала в том порядке, в котором их генерирует приложение. У нас есть инструменты, которые могут выполнять запросы к этому формату, а также планировать генерировать новые версии базы данных, хранящиеся в другом формате, когда мы начинаем раздражаться, что каждый запрос к формату журнала эффективно требует сканирования таблицы каждой таблицы в базе данных.
Даже если вы не можете напрямую использовать эту технику, просто подумав, что она может дать вам идеи для того, чтобы сделать что-то лучше в Log4J.