2017-09-22 5 views
1

journaux NLog par défaut dossier de l'applicationNlog journal à un autre répertoire par défaut

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

Actuellement, mon application est dans le répertoire C et je veux Nlog de se connecter au répertoire D dans le dossier spécifique. Je l'ai lu

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

et

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

dossier spécial, il semble dans les journaux MyDocuments, images. Donc pas très utile. Tempdir je ne suis pas sûr. Quelqu'un at-il fait plus tôt ou a une idée à ce sujet

config Mon Nlog

<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

Il n'y a pas de balise de fermeture '' dans l'exemple ci-dessus. Copier/coller problème ou précis? – DiskJunky

+1

Ah .. C'était le problème. Merci :) – Sushil

Répondre

2

Il suffit de spécifier le chemin complet dans l'attribut fileName comme si;

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

Un échantillon de travail complet est;

<?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> 

Si vous ne voyez toujours pas votre dossier, il est possible que le processus de l'application est en cours d'exécution sous n'a pas accès en écriture au fichier (NLog échouera en silence par défaut). Ceci est le plus souvent trouvé si vous êtes une application web dans IIS car le processus IIS aura besoin d'un accès en écriture au dossier qu'il n'aura pas par défaut.

+0

J'ai essayé comme ci-dessous mais il ne fonctionne pas \t Sushil

+0

Quelle est votre NLog.config complète? Les cibles sont-elles configurées et correspondent au fichier "'? – DiskJunky

+0

Question mise à jour avec Nlog.config – Sushil