Он не дает прямого ответа на ваш вопрос, но FileAppender log4 * net * имеет атрибут LockingModel, который вы можете установить на блокировку только тогда, когда файл фактически используется. Таким образом, если бы у вас было два FileAppender, работающих в одном потоке с установленным MinimalLock, это, вероятно, работало бы отлично. В разных потоках время от времени вы можете попасть в тупик.
FileAppender поддерживает подключаемые модели блокировки файлов через свойство LockingModel. Поведение по умолчанию, реализованное FileAppender.ExclusiveLock, заключается в получении эксклюзивной блокировки записи в файл до тех пор, пока этот appender не будет закрыт. Альтернативная модель, FileAppender.MinimalLock, удерживает блокировку записи только тогда, когда appender записывает событие регистрации.
Быстрый поиск в сети не дал никаких полезных результатов по реализации MinimalLock в log4j.