Log4net meldet sich beim Entwickler an, protokolliert jedoch nicht im Testserver

8

Ich benutze log4net 1.2.11. Die Protokollierung funktioniert also in der Entwicklungsmaschine, aber wenn ich sie auf einem Testserver veröffentliche, funktioniert sie nicht. Beim Debuggen aus der Ferne habe ich gesehen, dass das Protokoll korrekt in der ILog-Variablen geladen wird, aber wenn es log.Error () aufruft, passiert nichts, keine Protokolldatei, keine log4net-Ausnahme.

Irgendwelche Ideas?

Obs: Ich benutze das log4net in einer asp.net mvc 3 Website.

- BEARBEITEN

Ich setze Vollzugriff auf JEDEN ... nichts ändern, keine Log-Datei.

    
Vinicius Ottoni 28.03.2012, 19:07
quelle

3 Antworten

8

Aktivieren Sie das log4net-Debugging, um weitere Informationen zu dem Problem zu erhalten. Ohne dies schlägt log4net automatisch fehl und es ist sehr schwierig, Konfigurationsprobleme zu beheben.

Überprüfen Sie Wie aktiviere ich das log4net-interne Debugging? in log4net-FAQs

Berücksichtigen Sie bei Berechtigungsproblemen (wie Shyju angegeben wurde), dass die Standardidentität für IIS 7.5% ist. co_de% und nicht ApplicationPoolIdentity

Hier haben Sie Anweisungen zum Sichern von Ressourcen für ApplicationPoolIdentity . Überprüfen Sie den Abschnitt "Ressourcen sichern"

    
Claudio Redi 28.03.2012, 19:18
quelle
5

Überprüfen Sie, ob der Ordner über ausreichende Berechtigungen für ASP.NET verfügt, um eine Datei in diesen Ordner zu schreiben. Wahrscheinlich ist das der Grund, wenn es in der Dev-Maschine funktioniert

Einige Problemumgehungen

Löschen Sie die Protokolldatei und den Ordner in Ihrer Entwicklungsumgebung und führen Sie sie als neue aus, um festzustellen, ob sie eine Protokolldatei erstellt. Wenn ja, gibt es im Code nichts zu ändern. Es sollte eine Erlaubnissache sein. Also Lets überprüfen Sie die Berechtigungen

Wie Claudio Redi in seiner Antwort erwähnt, können Sie auch das interne Debugging von log4net aktivieren, um weitere Informationen zu erhalten. Überprüfen Sie den Abschnitt namens " Wie aktiviere ich log4net internes Debugging? " für weitere Details in diesem Link Ссылка

Aus ihrer Dokumentation

  

Warum kann ich mich nicht über eine Webanwendung bei einem FileAppender anmelden?

     

Die Webanwendung wird als spezielles Benutzerkonto auf dem Webserver ausgeführt   namens ASPNET. Dieses Konto verfügt über eingeschränkte Berechtigungen zum Schutz des   Webserver vor Angriffen. Standardmäßig ist dieses Konto möglicherweise nicht vorhanden   Berechtigung zum Schreiben in das Dateisystem. Stellen Sie sicher, dass das ASPNET   account hat die Berechtigung zum Erstellen und Schreiben von Dateien im Verzeichnis   ausgewählt für die Protokollierung.

    
Shyju 28.03.2012 19:09
quelle
1

In meinem Fall war der Verweis auf log4.config in web.config falsch:

%Vor%

zeigt auf den Stammordner, und auf meinem Dev-Rechner war log4.config tatsächlich vorhanden, also würde die Protokollierung funktionieren.

Bei einem Build wird jedoch log4.config in den Ordner bin kopiert, der einzige Ort nach einer Bereitstellung.

Ändern der web.config zu

%Vor%

machte Logging-Arbeit überall für mich

    
Heras 20.11.2016 14:14
quelle

Tags und Links