Problem
NLogは動的にファイル名を設定する機能があります。
ここでは、ファイルパスを設定するプレースホルダーを解析するのではなく、独自のプレースホルダーを設定し、そのプレースホルダーに任意のテキストを設定する方法でファイル名を変更します。
Solution
まずは、NLog.configを変更します。
1 |
|
上記の ${var:runtime} に注目です。
ここが、プログラム実行中に変化する部分です。runtime の部分は任意の文字列を設定できます。
次に、ソース部分
です。
1 | var logger = LogManager.GetLogger("Log"); |
Variablesプロパティに、先ほどの runtime をキーにして、任意の値を設定しています。
そして、設定を反映させるために、ReconfigExistingLoggers メソッドを呼び出しています。
以上で、出力先の実際のパスが 実行フォルダのパス\Logs\test\yyyyMMdd.log というログとして解釈されるようになります。