Enligt min erfarenhet sväljer log4net vanligtvis alla interna fel, vilket helt enkelt resulterar i loggsatser som inte ger några resultat.
Det du kanske vill prova är att aktivera log4nets interna loggning. Du kan göra detta genom att lägga till följande i dina appinställningar
avsnitt:
<add key="log4net.Internal.Debug" value="true" />
Detta ställer in egenskapen LogLog.InternalDebugging
till true
. log4net kommer nu att logga till standardutdata och felströmmar och till konfigurerade spårningslyssnare.
Du kan använda följande konfiguration för att fånga alla meddelanden som loggats för spårning:
<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>
Alla meddelanden som log4net loggat internt kommer att visas i TextWriterOutput.log
. Om du får en SecurityException
när du lägger till spårningsavlyssnaren till din konfiguration, har apppool-identiteten med stor sannolikhet inte tillräckliga rättigheter för att skapa en fil på den angivna platsen (i exemplet:c:\
). Försök med en annan plats eller ge apppool-identiteten tillräckliga rättigheter.