2016-05-19 10 views
1

Ich versuche NLog für meine C# -Anwendung zu konfigurieren. Ich habe das Logging funktioniert, aber es scheint eine eigene Meinung in Bezug auf Whitespace zu haben. Hier ist meine NLog.config:NLog nicht beibehalten Whitespace

<?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" 
     xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd" 
     autoReload="true" 
     throwExceptions="false" 
     internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log" > 

    <variable name="brief" 
      value="${longdate} | ${level} | ${logger} |: ${message}" /> 
    <variable name="verbose" 
      value="${longdate} | ${machinename} | ${processid} | ${processname} | ${level} | ${logger} |: ${message}" /> 

    <targets> 
    <target name="myLog" xsi:type="File" fileName="myLog.txt" layout="${verbose}" /> 
    <target name="console" xsi:type="Console" layout="${brief}" /> 
    </targets> 

    <rules> 
    <logger name="*" minlevel="Debug" writeTo="myLog" /> 
    <logger name="*" minlevel="Info" writeTo="console" /> 
    </rules> 
</nlog> 

Die Ausgabe des Log sieht derzeit wie folgt aus:

2016-05-19 12: 08: 00,0302 | DEBUG | Namespace.ClassName |: Einige Lognachricht hier ..

.

aus irgendeinem Grund wird NLog immer ich in der target ‚s layout Attribut definiert der Räume befreien. Ich möchte, dass der Protokolleintrag wie folgt aussieht:

2016-05-19 12: 08: 00.0302 | DEBUG | Namespace.ClassName |: Einige Lognachricht hier ...

Wie kann ich NLog die Räume im layout Attribut zu erhalten bekommen?

Ich habe auch versucht, mit Polsterung wie dies die level auf eine feste Länge einzustellen: ${padding:padding=5,fixedlength=true:${level:uppercase=true}} wie in this post erwähnt, aber noch kein Glück.

+0

Tritt dies sowohl in der Datei- als auch in der Konsolenausgabe auf? Welche Version von NLog verwenden Sie? – Amy

+0

@Amy Ja, es passiert sowohl in der Datei als auch in der Konsole. Ich verwende die aktuellste Version (4.3.4) aus dem [NuGet-Paket] (https://www.nuget.org/packages/NLog/). –

+0

Hm, ich kann mit dieser Version und Ihrer Konfiguration nicht reproduzieren. Wenn Sie ein neues Projekt erstellen und diese Konfiguration verwenden, passiert das auch dort? – Amy

Antwort

1

Ich entdeckte, dass NLog nicht gut spielt, wenn ein # Zeichen im Pfad für die Lösung ist. Der Pfad wurde umbenannt und es hat wieder funktioniert.

+1

Wow. Das ist verrückt. – Amy