Warum ist Log4Net nicht erstellen von log-Datei in der Produktion?
Ich verwende VS2005, ein website-Projekt, eine web-Bereitstellung die Projekt-und Log4Net. Ich kann die Protokollierung verwenden, wenn ich Sie lokal entwickeln. Ich kann sehen, dass die log-Dateien und alles ist in Ordnung. Wenn ich Baue meine website, (mit der web-deployment-Projekt), ich benutze die Bereitstellung als einzelne DLL-option. Wenn ich dann überprüfen Sie die Standorte, wo mein log-Dateien werden sollte, ich sehe keine Dateien.
Gibt es eine Möglichkeit, um dies zu beheben. Ich glaube nicht, dass das hinzufügen der debug-Wert, um die App-Einstellungen helfen, da ich nicht die Konsole, weil es ist eine website.
BEARBEITEN
Ich will nicht die 150 rep zu gehen, um Abfälle so, ein letztes mal. Ich verglich die interne Ablaufverfolgung aus meiner dev-Umgebung auf die Spur von der Produktion. Meine dev-Umgebung-Ablaufverfolgung zeigt den Aufruf der Xml-Konfigurator, wo die Produktion nicht. Ich habe code im global.asax auf application_start () - Methode. Ich legte debug-code drin und es wird immer genannt in dev aber nicht in der Produktion.
Ich denke, das ist, wo die web-deployment-Projekt verursacht einige Probleme. Nicht die Globale.asax erhalten Sie zusammengestellt die einzigen DLL? Wenn ich eine bauen im deployment-Verzeichnis sehe ich eine Globale.kompilierte Datei. Müssen, gehe in den bin-Ordner in der Produktion? Oder ist das Globale.asax code in der einzigen DLL? Sowohl in den bin-Ordner oder nur die DLL nichts verändert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Macht den Arbeitsprozess über ausreichende Berechtigungen zum schreiben in das log-Verzeichnis? Ich vermute, dass das nicht der Fall. Möchten Sie vielleicht zu geben, den Arbeitsprozess der Gruppe Schreibrechte auf das Verzeichnis und sehen, ob das Ihr problem behebt.
Fügen Sie diese in AssemblyInfo.cs-Datei und überprüfen Sie
Ich hab das problem gefunden. Die Berechtigungen waren KORREKT. Stellt sich heraus, dass die Verwendung eines web-deployment-Projekt schafft auch ein precompliled.config-Datei im Stammverzeichnis. Ich hatte nicht kopiert, die für die Produktion enivornment. Sobald das war in der alles funktionierte. Sorry, niemand hat das Kopfgeld.
Wie es aussieht ist die Wurzel des Problems ist, dass der Application_Start-Ereignis in der globalen.asax wird nicht gefeuert.
Es ist ein "bekanntes" problem beim bereitstellen von VS 2005, Windows 2003, dass der Application_Start wird nicht ausgelöst.
Den Inhalt des Globalen.asax.cs kompiliert, wie in der dll. Aber der Application_Start wird nicht ausgeführt, wenn die Datei Global.asax vorhanden ist.
Hier sind ein paar relevante links:
http://accidentaltechnologist.com/asp-net/application_start-not-firing-and-the-globalasax/
http://www.velocityreviews.com/forums/t300292-web-deployment-projects-globalasax-problem.html
Gibt es einige andere Möglichkeiten, die fallen in den oben genannten links.
Hoffe, das hilft
Shiraz
Mir das passiert war und Sie die Berechtigungen für das ASPNET-Benutzer zu erstellen, die Dateien bei Bedarf. Überprüfen können, ob es etwas gibt, in das windows-Ereignisprotokoll dazu?
Zu prüfen, die Art der Sache (wir beobachten die watcher!) wir Ausgabe, in denen der log4net war zur Arbeit zu gehen, indem er diese mit der OutputDebugString() via pinvoke.. Wir setzen auch diese in einen try-catch um sicherzustellen, dass wir entdecken Fehler in Bezug auf dies, wie es sehr wichtig, zu verwenden, um in der Lage sein log korrekt.
Überprüfen Sie die Berechtigungen auf die zu erwartenden output-Verzeichnis, und sicherzustellen, dass die web-service schreiben können. Der einfachste Weg, es zu tun ist, um zu laufen filemon.exe (ein SysInternals-app) und beschränken Sie Sie entsprechend. Dies sollte Ihnen sagen, wenn alles andere fehlschlägt und Sie beheben können, wie notwendig
Stellen Sie sicher, dass log4net zu bekommen ist, richtig konfiguriert. Vielleicht ist die dll ist in Ordnung, aber die config-Datei fehlt? log4net werden könnte, es aber einfach nicht, alle aktiven appenders.
sicherzustellen, ob log4net richtig konfiguriert ist, ich Erzeuge einen UDP Appender, dass die Protokolle auf port 9090. ich benutze Kettensäge http://logging.apache.org/chainsaw/index.html überprüfen Sie die Protokolleinträge.
damit Sie Sie überprüfen können, dass zumindest einige logs Einträge erfolgt sind und dass der logger läuft.
UDP Appender Config
Kettensäge XML
Behoben. Fügen Sie den Benutzer (das war, starten Sie den IIS-Arbeitsprozess) mit 'write' Rechte 'Eigenschaften -> Sicherheit -> Bearbeiten' für das Projekt-Ordner, in dem Sie erstellt werden sollten "Log" - Datei.