2016-07-19 20 views
0

Ich versuche log4net zu verwenden, indem ich ein paar Tutorials lese und die Fülle von Posts über Leute lese, die Probleme damit haben, da ich es nicht richtig funktionieren lassen kann.Keine Ausgabe von log4net

Ich habe diesen Teil rechts oben auf meiner .config Datei

<configSections> 
     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 
    </configSections> 
    <log4net> 
    <appender name="RollingFile" type="log4net.Appender.RollingFileAppender"> 
     <file value="log4net.log" /> 
     <appendToFile value="true" /> 
     <maximumFileSize value="500KB" /> 
     <maxSizeRollBackups value="2" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date %level %logger - %message%newline" /> 
     </layout> 
    </appender> 
    <root> 
     <level value="All" /> 
     <appender-ref ref="RollingFile" /> 
    </root> 
    </log4net> 

ich diese Linie auf meine Datei Assemblyinfo

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Web.config", Watch = true)] 

und versuchte, mit dem Logger innerhalb mt Service wie dieser

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

oder

private static ILog Log = LogManager.GetLogger(typeof(MyService)); 

Es wird jedoch niemals eine Datei erstellt, noch irgendein anderer Hinweis darauf, dass überhaupt etwas passiert.

Wie kann ich diesen Logger richtig benutzen?

+0

@fubo ja Ich dachte einfach nicht, dass es nützlich wäre, diese Codezeile zu der Frage hinzuzufügen, ich bezweifle, dass ich dort einen Fehler gemacht habe. – dearn44

+0

hat Ihre Anwendung Schreibzugriff auf das Protokollverzeichnis? – fubo

+0

Ja, ich habe verschiedene Orte ausprobiert und ich weiß, dass es zumindest in "Temp" funktioniert. – dearn44

Antwort

1

Erstellen Sie einen log4net DebugAppender, um die Ausgabe von log4net im Visual Studio-Ausgabefenster anzuzeigen. Dies sollte Ihnen einige Hinweise auf das Problem geben.

In der app.config:

<appSettings> 
    <!-- log4net configuration when running in debug mode. -->  
    <add key="log4net.Internal.Debug" value="true" /> 
</appSettings> 

eine neue Debug-appender zum log4net.config hinzufügen:

<appender name="DebugAppender" type="log4net.Appender.DebugAppender"> 
    <immediateFlush value="true" /> 
    <layout type="log4net.Layout.SimpleLayout" /> 
</appender> 

Und fügen Sie den neuen appender zum log4net.config root:

<root> 
    <level value="ALL" /> 
    <appender-ref ref="RollingFile" /> 
    <appender-ref ref="DebugAppender" /> 
</root> 

Führen Sie die Anwendung aus, und zeigen Sie das Visual Studio-Ausgabefenster an, um die interne Protokollierung für log4net anzuzeigen . Wenn keine Ausgabe vorhanden ist, wird die Datei log4net.config niemals geladen.

+0

Es scheint, dass alle meine Protokollebenen gesetzt sind bei false bedeutet dies, dass ich meine Konfigurationen für den Logger nicht richtig finde. – dearn44