2017-03-29 3 views
0

Ich habe ASP.Net WebAPI Projekt & mit Log4Net API.Log4Net generiert keine Protokolldatei

protected void LogException(Exception ex) 
    { 
     var msgParams = new Dictionary<string, string> 
       { 
        { "Message", ex.Message }, 
        { "StackTrace", ex.StackTrace }, 
       }; 

     _logger.Info(JsonConvert.SerializeObject(msgParams)); 
    } 

XML-Konfiguration

<?xml version="1.0" encoding="utf-8" ?> <log4net> 
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender"> 

    <file value="App.log" /> 

    <appendToFile value="true" /> 

    <maximumFileSize value="50KB" /> 
    <maxSizeRollBackups value="2" /> 

    <encoding value="utf-8" /> 

    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date %level %thread %logger - %message%newline" /> 
    </layout> 

</appender> 

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

Aber wenn jede Ausnahme & oben LogException auftritt() getroffen wird, weder ich jede Ausnahme immer noch ich sehe jede App.Log Datei in meinem Verzeichnis.

Was fehlt mir hier? Jede Hilfe/Anregung sehr geschätzt.

+2

Wenn Sie ein Laufzeitverfolgungswerkzeug wie debugbiew verwenden, können Sie feststellen, dass das Apppool-Konto keine Berechtigung zum Erstellen der Datei hat. Sie sollten die Protokollierung an einem anderen Speicherort außerhalb des Anwendungsstamms konfigurieren. –

+0

@tomredfern, ich renne als Adminstrator –

+0

Nur um zu bestätigen, dass Sie log4net zur Laufzeit mit XmlConfigurator oder einem Assembly-Attribut konfigurieren? – stuartd

Antwort

0

Das Problem ist wahrscheinlich in der Lage:

<file value="App.log" /> 

Dies wird auf den Webserver-Verzeichnis relativ einzuloggen, nicht der Ort Sie Code/ausführbar. Legen Sie den vollständigen Pfad fest, um dies zu testen. Der Protokollspeicherort muss für den Benutzer beschreibbar sein, der Ihre Anwendung ausführt.

+0

Ich überprüfte. nothing sold –

+0

Es sollte für den IIS-Prozess beschreibbar sein, der die Anforderung ausführt. – Steve

Verwandte Themen