В вашем случае, поскольку два одновременных запроса сделаны для записи в один и тот же файл, вы должны использовать асинхронную обработку для постановки задачи в очередь. При постановке в очередь процесса не будет предпринято попыток одновременной записи одного и того же файла.Второе задание начнется только после завершения первого.
Для асинхронной обработки вы можете использовать такие инфраструктуры, как RabbitMq или Gearman .
Другой вариантэто использовать базы данных для хранения ваших журналов.Базы данных предназначены для предотвращения конфликтов такого типа.
Надеюсь, что любой из них решит вашу проблему.
Редактировать: Чтобы добавить дальше, вы можете использовать flock () дляполучить блокировку любого файла, который вы хотите написать.Вы можете приобрести эксклюзивную блокировку и заблокировать / поставить в очередь вторую операцию, чтобы подождать, пока блокировка не будет снята первой.Перейдите по этой ссылке для более подробной информации.