2017-09-22 5 views
1

standardmäßig Nlog Protokolle log AnwendungsordnerNlog in ein anderes Verzeichnis

 <target xsi:type="File" name="f" 
     fileName="${basedir}/logs/${shortdate}.log" 
      layout="${longdate} ${uppercase:${level}} ${message} 
    ${exception:message=tostring}" /> 

Derzeit meine Anwendung ist in C-Verzeichnis auf Standard und ich möchte Nlog zu D-Verzeichnis in bestimmten Ordner protokollieren. Ich las über

  fileName="${tempdir:folder=myapptmp}/sample.log" 

und

 ${specialfolder:dir=String:file=String:folder=Enum} 

Spezielle Ordner es meldet sich MyDocuments scheint, Bilder. Also nicht sehr nützlich. Tempdir bin ich mir nicht sicher. Hat früher in diesem jemand getan oder hat es eine Idee, über

Meine Nlog Config

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

    <!-- 
    See https://github.com/nlog/nlog/wiki/Configuration-file 
     for information on customizing logging rules and outputs. 
     --> 
     <targets> 
    <!-- add your targets here --> 


     <target name="File" xsi:type="File" 
    fileName="D:\Sushil\DwebLogging\log-${date:format=yyyy-MM-dd}.log" 
     layout="${longdate} ${uppercase:${level}} ${message} ${exception: 
    format=tostring}" /> 
     <rules> 
     <logger name="*" minlevel="Trace" writeTo="File" /> 
     </rules> 
     </nlog> 
+0

Im obigen Beispiel gibt es kein abschließendes ''-Tag. Problem kopieren/einfügen oder korrekt? – DiskJunky

+1

Ah .. Das war das Problem. Danke :) – Sushil

Antwort

2

einfach den vollständigen Pfad in das fileName Attribut angeben, wie so;

<target name="File" xsi:type="File" fileName="D:\Logging\SomeFile-${date:format=yyyy-MM-dd}.log"> 

Ein voll funktionsfähiges Beispiel ist;

<?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" 
     autoReload="true"> 

    <targets> 
    <target name="File" xsi:type="File" fileName="D:\Logging\Sample-${date:format=yyyy-MM-dd}.csv"> 
     <layout xsi:type="CsvLayout"> 
     <column name="Index" layout="${counter}" /> 
     <column name="ThreadID" layout="${threadid}" /> 
     <column name="Time" layout="${longdate}" /> 
     <column name="Severity" layout="${level:uppercase=true}" /> 
     <column name="Location" layout="${callsite:className=False:fileName=True:includeSourcePath=False:methodName=False}" /> 
     <column name="Detail" layout="${message}" /> 
     <column name="Exception" layout="${exception:format=ToString}" /> 
     </layout> 
    </target> 
    </targets> 

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

Wenn Sie noch nicht die Dateien zu sehen, dann ist es möglich, dass der Prozess der Anwendung unter ausgeführt hat keinen Schreibzugriff auf die Datei (NLog wird still standardmäßig scheitern). Dies wird am häufigsten gefunden, wenn Ihre Anwendung eine Webanwendung in IIS ist, da der IIS-Prozess Schreibzugriff auf den Ordner benötigt, den er standardmäßig nicht hat.

+0

Ich versuchte, wie unten, aber es funktioniert nicht \t Sushil

+0

Was ist Ihre volle NLog.config? Sind die Ziele eingerichtet und stimmen sie mit dem '' überein? – DiskJunky

+0

Aktualisierte Frage mit Nlog.config – Sushil

Verwandte Themen