2017-02-28 2 views
0

Dies ist mein erster Versuch, Logging, und ich habe ähnliche Fragen recherchiert, aber kann nicht meine Situation herausfinden, wahrscheinlich, weil ich keine Fehler bekomme, von zu gehen.Log4Net erstellt keine TXT-Datei?

Ich versuche Log4Net zu verwenden, um einfach eine TXT-Datei zu erstellen. Ich habe keine web.config oder app.config, also habe ich meine eigene Konfigurationsdatei erstellt, um Log4Net einzurichten (Durch Nachforschung fand ich, dass ich das tun könnte). Die Konfigurationsdatei ist unten:

log4net.config

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
<configSections> 
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 
</configSections> 
<log4net debug="true"> 
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="C:\myFolder\TestLog.txt" />//******Nothing Is Being Created Here**** 
    <appendToFile value="true" /> 
    <rollingStyle value="Size" /> 
    <maxSizeRollBackups value="10" /> 
    <maximumFileSize value="10MB" /> 
    <staticLogFileName value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %level %logger - %message%newline" /> 
    </layout> 
</appender> 

<root> 
    <level value="DEBUG" /> 
    <appender-ref ref="RollingLogFileAppender" /> 
</root> 
</log4net> 
</configuration> 

In meinem AssemblyInfo.cs

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

Und der Anruf an den Logger

.... 
private static readonly ILog logger = LogManager.GetLogger("ExportLogger"); 
.... 
log4net.Config.XmlConfigurator.Configure();//I know this shouldnt be done here, just testing 
logger.Debug("Successfully logged something"); 

Der obige Code alle Läufe ohne Fehler, also bin ich mir nicht sicher, wo mein Fehler ist. Ich vermute, dass ich die Konfiguration falsch konfiguriert habe. Kann jemand sehen, was ich falsch mache und warum es keine Erstellung der .txt-Datei gibt?

+0

Scheck Schreibzugriffsrechte von Anwendungspool Benutzer in den Ordner ‚C: \ myFolder‘ – Sergey

+1

Unter der Annahme, es ist nicht nur Berechtigungen - wie Sie ein eigenständiges log4net verwenden sind Konfigurationsdatei, sollten Sie wahrscheinlich die '' und '' Elemente entfernen, da sie nur für app/web.config Dateien gelten. Verwenden Sie auch die Überladung von 'log4net.Config.XmlConfigurator.Configure()', mit der Sie diese Datei übergeben können. Sie können 'LogManager.GetRepository(). Configured 'prüfen, um zu sehen, ob die Konfiguration geladen wurde. Wenn es immer noch nicht funktioniert, [fügen Sie einen Trace-Listener zur Debug-Ausgabe hinzu] (http://haacked.com/archive/2006/09/27/Log4Net_Troubleshooting.aspx/) – stuartd

+0

Haben Sie sichergestellt, dass die log4net.dll ist im Verzeichnis bin verfügbar? –

Antwort

0

Der Fehler in Ihrem Attribut:

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

Sie definieren die Konfigurationsdatei, aber Sie werden mit der app.config für die Konfiguration.

Dies wird Ihr Problem beheben:

[assembly: log4net.Config.XmlConfigurator()]