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