2017-02-24 1 views
1

Ich versuche, nlog mit der Azure-Webanwendung Log Stream zu arbeiten.Azure-Protokoll-Streaming mit NLog

Die Protokolle erscheinen, wenn ich nicht nlog verwende, und einfach System.Diagnostics.Trace.WriteLine verwenden.

Allerdings, wenn ich die Trace Typ in meinem nlog.config verwenden, ist es nicht die Trace-Protokolle nicht zeigen ...

<?xml version="1.0" encoding="utf-8" ?> 
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <targets> 
     <target xsi:type="Trace" name="trace" layout="${message}" /> 
    </targets> 

    <rules> 
     <logger name="*" minlevel="Trace" writeTo="trace" /> 
    </rules> 
</nlog> 

Ich kann nichts sehen, dass ich anders das tun akzeptierte Antwort hier ...

How to integrate NLog to write log to Azure Streaming log

Bitte beachte, dass ich abgehauen, dass nlog.config Datei zu zeigen, nur die Spur - aber ich habe normalerweise auch einen File Zieltyp - ich habe versucht, mit und ohne diese .

Ich habe mich auf der bereitgestellten Azure-Website angemeldet und die nlog-Konfigurationsdatei wurde erfolgreich hochgeladen. Ich verwende die Github-Bereitstellung.

Ich habe die Protokollierung in Azure festgelegt, um nur die Dateisystemprotokollierung zu verwenden, und ich habe das auf verbose festgelegt.

Irgendwelche Ideen?

Antwort

3

Es stellt sich heraus, dass, wenn Visual Studio Praktische Anwendung aktiviert ist (ein aktuelles, was ich zu dem Projekt hinzugefügt), ist es einen nlog Config Abschnitt eingefügt hatte in meine web.config. Dies hatte dann zur Folge, dass meine Datei nlog.config überhaupt nicht verwendet wurde. Ich habe es behoben, indem ich den Abschnitt "nlog config" aus meiner Datei "web.config" entfernt habe und das Application Insights-Ziel stattdessen in meine Datei "nlog.config" kopiert habe. Der Zieltyp "Trace" funktioniert jetzt wie erwartet und wird in den Azure-Streaming-Protokollen angezeigt.

1

Das NLog-Trace-Target führt nur Trace.WriteLine für Log-Events auf Debug-Ebene aus.

versuchen Vielleicht ist die benutzerdefinierte MyTraceTarget hier gezeigt:

https://github.com/NLog/NLog/issues/1968

+0

Danke dafür. Ihr Vorschlag zu dem benutzerdefinierten Ziel führte mich auf den richtigen Weg, da das benutzerdefinierte Ziel auch nicht funktionierte. Daher habe ich mich im Debugger mit der LogManger.Configuration befasst und das zeigte mir das tatsächliche Problem. Upvoted :) – Dan