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