2016-12-21 4 views
0

Ich benutze log4net, um tägliche Protokollierung durchzuführen.
Ich weiß, dass log4net das Löschen alter Dateien auf diese Weise nicht unterstützt.So lesen Sie log4Net aus web.config

Ich versuche, meine eigene Methode zu schreiben, um diese Aufgabe zu erfüllen, jedoch bin ich nicht sicher, wie man die log4net-Einstellungen aus der Datei web.config liest.

Ich habe versucht:

var log4NetData = ConfigurationManager.GetSection("log4net"); 

Jedoch habe ich diese bekommen, wie meine Ergebnisse:

Der Typ 'System.Configuration.ConfigXmlElement' existiert sowohl in 'System.Configuration.dll' und "System.dll"

Wie kann ich den log4net-Knoten aus meiner web.config lesen?

+0

, dass der Compiler ist zu sagen Sie es nicht weiß, welche 'ConfigXmlElement' Sie es verwenden möchten. Sie scheinen zwei, eins in jeder der angegebenen DLLs zu haben. Ändern Sie die Variable, um genauer zu sein. – AlG

+0

ConfigurationManager.GetSection() gibt das Typobjekt zurück. Ist es eine andere Linie, die die Ausnahme wirft? –

+0

Welche Einstellungen benötigen Sie? Sie könnten sie wahrscheinlich direkt von log4net erhalten, ohne die Konfiguration lesen zu müssen. – stuartd

Antwort

0

Eigentlich Log4Net kann die gleiche Datei immer aktualisieren (auf diese Weise müssen Sie sie nicht löschen und eine andere Datei erstellen). Ich benutze log4Net, um immer die gleiche Datei n mal in einer Stunde zu protokollieren. Meine Konfigurationen:

private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 

app.config:

<configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 
    </configSections> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    </startup> 
    <log4net> 
    <root> 
     <level value="ALL" /> 
     <appender-ref ref="MyFileAppender" /> 
    </root> 
    <appender name="MyFileAppender" type="log4net.Appender.FileAppender"> 
     <file value="application.log" /> 
     <appendToFile value="true" /> 
     <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date %level - %message%newline" /> 
     </layout> 
    </appender> 
    </log4net> 
+0

Unsere Admins wollen eine Log-Dateien aufgelistet nach dem Tag. Was ist in Ordnung, aber sie wollen nur 30 Tage von Protokollen. – PrivateJoker

Verwandte Themen