web-dev-qa-db-ja.com

NLogファイルパスのアプリデータディレクトリを使用する

NLog.configファイルでtargetを設定して、ユーザーアプリデータディレクトリにログファイルを作成するにはどうすればよいですか?

以下は、ファイルの目的の場所です。

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

fileNameを次の方法で設定しようとしましたが、うまくいきませんでした。

  • 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

次のようなターゲットを作成することでそれを実現できます。

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

ドキュメントは here にあります。

これがお役に立てば幸いです。

46
Jacco Dieleman

受け入れられた回答はAppData\Localディレクトリにログファイルを作成せず、代わりにAppData\Roamingディレクトリにログファイルを作成します。 OPからAppData\Localにログファイルを作成するに要求されたように、特別なフォルダーパスでLocalApplicationDataを使用する必要があります。

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

Jaccoの答えに加えて、次のようにappdataに保存する可能性がある他のデータとは別にログを保持したい場合は、パスにフォルダー名を追加できます。

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