NLog in WCF-Dienst
Kann ich NLog in einem WCF-Dienst? Ich bin versucht, aber kann es nicht funktionieren.
Zuerst habe ich eine einfache Konfiguration in einer Windows Forms-Anwendung, um zu überprüfen, dass ich die Einstellung richtig und das schrieb die log-Datei in Ordnung (ich Schreibe gerade an einem Speicherort im Netzwerk mit Namen und nicht IP-Adresse).
Ich habe dann genau die gleiche Sache in der WCF-Dienst. Es hat nicht funktioniert.
Berechtigungen überprüfen ich habe dann einige code zu verwenden, einen TextWriter.
TextWriter tw = new StreamWriter(fileName);
tw.WriteLine(DateTime.Now);
tw.Close();
Dies funktionierte OK, so weiß ich, ich kann schreiben, den Standort.
- Kannst du die Fehler?
- Versuchen Sie, auf NLog interne Protokollierung durch ändern der ersten Zeilen Ihres NLog-Konfiguration wie folgt Aussehen: <nlog xmlns="nlog-project.org/schemas/NLog.mono2.xsd" xmlns:xsi="w3.org/2001/XMLSchema-instance" autoReload="true" internalLogLevel="Warnen" internalLogFile="nlog_log.log" - > Drehen Sie die Ebene so weit als Spur und sehen, was es sagt.
- Formatierungen, die nicht so gut auf, dass Kommentar. Siehe "Behandlung von Ausnahmen anders" in diesem thread ist ein gutes Beispiel dafür, wie schalten Sie die interne Protokollierung für NLog. stackoverflow.com/questions/4091606/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen Sie, dass Ihre NLog.config-Datei in demselben Verzeichnis wie Ihre .svc-Datei und NICHT die Bin-Verzeichnis.
Wenn Sie gerade Hinzugefügt die config-Datei in das WCF-Projekt, dann veröffentlichte er Sie wahrscheinlich finden Sie Ihre config-Datei kopiert wurde, in das Verzeichnis bin, das ist, warum NLog kann es nicht finden. Verschieben Sie es auf eine Ebene dann neu starten, die website-hosting-service (um sicherzustellen, dass die änderung aufgenommen wird).
Dieser hatte mich ratlos für eine Weile an diesem morgen!
Setzen Sie Ihre NLog config in die web.config - Datei. Etwa so:
Siehe mein Kommentar zu deiner ursprünglichen Frage, wie schalten NLog interne Protokollierung.
Einschalten NLog internen Protokollierung, ändern Sie die wichtigsten von Ihnen NLog config wie folgt Aussehen:
Sich die wichtigsten Teile sind internalLogLevel und internalLogFile.
Können Sie auch festlegen
internalLogToConsole
zutrue
oderfalse
direkt die interne Protokollierung in der Konsole.Gibt es eine andere Einstellung,
throwExceptions
, sagt NLog, ob oder nicht, um Ausnahmen. Normalerweise ist dies auf false gesetzt, sobald die Protokollierung ist erfolgreich konfiguriert und funktioniert. Sie können setzen Sie ihn auf true, um festzustellen, ob Ihr problem durch eine NLog-Fehler.So, wenn Sie hatte all diese Optionen aktiviert sind, die oben in deinem NLog-Konfiguration könnte wie folgt Aussehen:
Meine erste Vermutung ist, dass NLog ist nicht zu finden, die config-Daten. Verwenden Sie eine externe config-Datei (NLog.config) oder "inline" - Konfiguration (in Ihrer app.config oder web.config)? In Ihrem Projekt haben, ist(sind) deiner config Datei(en) markiert (in den Eigenschaften), wie Immer Kopieren?