Мы используем log4net для ведения журналов на стороне сервера. Проблема, с которой мы столкнулись, связана с FileAppender. Вот наш раздел log4net в файле app.config:
<log4net xsi:noNamespaceSchemaLocation="http://csharptest.net/downloads/schema/log4net.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<appender name="MainAppender" type="log4net.Appender.FileAppender">
<lockingMode type="log4net.Appender.FileAppender+MinimalLock" />
<file value="${TMP}\Shunra.Infra.Test.Host.log" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="ERROR" />
<appender-ref ref="MainAppender" />
</root>
</log4net>
Дело в том, что, когда несколько потоков записывают в файл журнала, log4net иногда не может получить блокировку файла, потому что другой поток ведет журнал в тот же момент. Проблема проявляется в первом случае исключения IOException, обрабатываемого внутри log4net.
Я не уверен, что мы правильно используем log4net в этом случае, и хотел бы получить совет, как улучшить его конфигурацию.
Спасибо.