Z mojego doświadczenia wynika, że log4net zwykle połyka wszelkie błędy wewnętrzne, po prostu powodując, że instrukcje dziennika nie dają żadnych wyników.
To, co możesz chcieć spróbować, to włączyć wewnętrzne rejestrowanie log4net. Możesz to zrobić, dodając następujące elementy do swoich appSettings
sekcja:
<add key="log4net.Internal.Debug" value="true" />
Ustawia to właściwość LogLog.InternalDebugging
na prawdę
. log4net będzie teraz logować się do standardowych strumieni wyjściowych i błędów oraz do skonfigurowanych detektorów śledzenia.
Możesz użyć następującej konfiguracji aby przechwycić wszystkie wiadomości zarejestrowane do śledzenia:
<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>
Wszystkie wiadomości zarejestrowane wewnętrznie przez log4net pojawią się w TextWriterOutput.log
. Jeśli otrzymasz SecurityException
kiedy dodasz detektor śledzenia do swojej konfiguracji, najprawdopodobniej tożsamość puli aplikacji nie ma wystarczających uprawnień do utworzenia pliku w określonej lokalizacji (w przykładzie:c:\
). Wypróbuj inną lokalizację lub nadaj tożsamości puli aplikacji wystarczające uprawnienia.