web-dev-qa-db-fra.com

Utiliser le répertoire de données d'application dans le chemin du fichier NLog

Comment puis-je définir target dans le fichier NLog.config pour créer le fichier journal dans le répertoire de données de l'application utilisateur?

Vous trouverez ci-dessous l'emplacement souhaité du fichier.

C:\Users\userid\AppData\Local ...\LogFile.txt

J'ai essayé de définir le fileName des manières suivantes sans succès.

  • target name="logfile" xsi:type="File" fileName="%APPDATA%/.../LogFile.txt"

  • target name="logfile" xsi:type="File" fileName="${APPDATA}/.../LogFile.txt"

  • target name="logfile" xsi:type="File" fileName="${%APPDATA%}/.../LogFile.txt"

25
Somu

Vous pouvez y parvenir en créant une cible comme celle-ci:

<target name="logfile" xsi:type="File"
    fileName="${specialfolder:folder=ApplicationData}/LogFile.txt"/>

La documentation peut être trouvée ici .

J'espère que ça aide.

46
Jacco Dieleman

La réponse acceptée ne crée pas le fichier journal dans le répertoire AppData\Local mais crée le fichier journal dans le répertoire AppData\Roaming. Comme demandé par l'OP créer le fichier journal dans AppData\Local vous devez utiliser LocalApplicationData dans le chemin du dossier spécial.

<target name="logfile" xsi:type="File"
    fileName="${specialfolder:folder=LocalApplicationData}/ApplicationLogs/LogFile.txt"/>
7
prem

Juste un ajout à la réponse de Jacco, vous pouvez ajouter un nom de dossier au chemin si vous souhaitez que les journaux soient conservés séparément des autres données que vous pourriez stocker dans les données d'application, comme ceci:

fileName="${specialfolder:folder=ApplicationData}/Logs/LogFile.txt"/>
3
abh