Общепринятый способ сделать это для каждого экземпляра приложения - сделать эксклюзивную блокировку файла перед записью и отпустить ее, когда закончите.
К сожалению, это требует многократного открытия и закрытия файла, что ОЧЕНЬ медленно, и сериализует работу, которая имеет стоимость по мере роста числа машин. Serilog не реализует это в настоящее время, так как это одна из тех функций, которая, кажется, работает в тестировании, но работает очень плохо в производстве.
Лучше всего сделать так, чтобы каждый экземпляр приложения записывал в свой собственный файл, но в долгосрочной перспективе использование сетевого сборщика / службы журналов будет меньше проблем.