По моему опыту, log4net обычно проглатывает любые внутренние ошибки, просто приводя к операторам журнала, которые не дают никаких результатов.
То, что вы можете попробовать, это включить внутреннее ведение журнала log4net.Вы можете сделать это, добавив следующее в ваш appSettings
раздел:
<add key="log4net.Internal.Debug" value="true" />
Это устанавливает свойство LogLog.InternalDebugging
в true
.log4net теперь будет регистрировать стандартные потоки вывода и ошибок и настроенные прослушиватели трассировки.
Вы можете использовать следующую конфигурацию для захвата любых сообщений, зарегистрированных в трассировке:
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<listeners>
<add name="myListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="c:\TextWriterOutput.log" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>
Все сообщения, зарегистрированные log4net внутри, появятся в TextWriterOutput.log
.Если при добавлении прослушивателя трассировки в вашу конфигурацию вы получите SecurityException
, то весьма вероятно, что у удостоверения приложения нет достаточных прав для создания файла в указанном месте (в примере: c:\
).Попробуйте другое местоположение или предоставьте удостоверению приложения достаточные права.