Podle mých zkušeností log4net obvykle spolkne jakékoli vnitřní chyby, což jednoduše vede k výpisům protokolu, které nepřinášejí žádné výsledky.
Možná budete chtít zkusit povolit interní protokolování log4net. Můžete to udělat přidáním následujícího do appSettings
sekce:
<add key="log4net.Internal.Debug" value="true" />
Tím se nastaví vlastnost LogLog.InternalDebugging
true
. log4net se nyní bude přihlašovat ke standardnímu výstupnímu a chybovému proudu a ke nakonfigurovaným posluchačům trasování.
Můžete použít následující konfiguraci pro zachycení všech zpráv přihlášených ke sledování:
<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>
Všechny zprávy zaznamenané interně log4net se objeví v TextWriterOutput.log
. Pokud získáte SecurityException
když do své konfigurace přidáte posluchač trasování, pak velmi pravděpodobně identita fondu aplikací nemá dostatečná práva k vytvoření souboru v zadaném umístění (v příkladu:c:\
). Zkuste jiné umístění nebo dejte identitě apppoolu dostatečná práva.