Log4net-log-in-Entwickler-Maschine, aber in der test-server nicht anmelden
Ich bin mit log4net 1.2.11. So, die Anmeldung funktioniert in Entwickler-Maschine, veröffentlichen, aber wenn ich in einem test server es nicht funktioniert. Debugging aus der Ferne, sah ich, dass das Protokoll ordnungsgemäß geladen in ILog variabel, aber wenn es Anrufliste.Error(), passiert nichts, keine log-Datei, keine log4net Ausnahme.
Jede ideias?
Obs: ich bin mit dem log4net in eine asp.net mvc 3 website.
-- EDIT
Legte ich die Volle Kontrolle zu JEDER... nichts ändern, keine log-Datei.
- ApplicationPoolIdentity ist die Standard-Identität für IIS 7.5
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aktivieren log4net Debuggen, um mehr Informationen über das problem. Ohne diese, log4net schlägt im hintergrund fehl, und es ist sehr schwer zu beheben Probleme mit der Konfiguration.
Überprüfen Wie aktiviere ich log4net interne debugging? auf log4net FAQS
Berücksichtigen, wenn Sie über die Berechtigungen Probleme (wie Shyju hingewiesen, dass die Standard-Identität für IIS 7.5 ist
ApplicationPoolIdentity
und nichtNetwork Service
Hier Sie Anweisungen zum sichern von Ressourcen für die ApplicationPoolIdentity
. Überprüfen Sie im Abschnitt "Sicherung der Ressourcen"
ApplicationPoolIdentity
existiert nicht. =(Überprüfen Sie den Ordner, verfügt über ausreichende Berechtigungen für ASP.NET um eine Datei schreiben zu. Wahrscheinlich ist das der Grund, wenn es funktioniert in Dev-Maschine
Einige workarounds
in Ihrem Dev maching löschen Sie die log-Dateien und Ordner und starte es neu, und sehen, ob es erstellt log-Datei. Wenn ja, da gibt es nichts zu ändern im code. Es sollte eine Erlaubnis Sache. So Können doppelt überprüfen Sie die Berechtigungen
Als Claudio Redi erwähnt in seiner Antwort, Sie können auch die interne debugging von log4net um mehr Infos zu bekommen.
Überprüfen Sie den Abschnitt "Wie aktiviere ich log4net interne debugging?" weitere details in diesem link http://logging.apache.org/log4net/release/faq.html
Aus Ihrer Dokumentation
<file value="log.txt" />
log4net:ERROR [FileAppender] ErrorCode: GenericFailure. Unable to acquire lock on file C:\inetpub\wwwroot\sttenterprise\log.txt. Access to the path 'C:\inetpub\wwwroot\sttenterprise\log.txt' is denied.
warum? Ich legte die volle Kontrolle zu jeder...In meinem Fall, die Referenz auf
log4.config
innenweb.config
war falsch:Punkte, um den root-Ordner, und auf meine dev-Maschine,
log4.config
es eigentlich war, also die Protokollierung funktionieren würde.Jedoch auf einem build,
log4.config
kopiertbin
Ordner, der einzige Ort, es wäre nach einem bereitstellen.Änderung der
web.config
zugemacht Protokollierung überall für mich
Stellen Sie sicher, dass der log-Ordner hat die Berechtigung für den Standard-AppPool
Wenn die Berechtigung nicht vorhanden ist , fügen Sie DefaultAppPool zu der Gruppe