My appはアプリケーション自体のログを作成するので、アクティブになったときとアプリケーションレベルで何が起こったのかを記録します。NLog Configuration API:変数に格納されたレイアウトを使用する
アプリケーションは「プロファイル」を中心にしています。ユーザーは、アプリケーションに/ when/what/howがどこにあるかを示すプロファイルを読み込みます。だから私はまた、プロファイルが実行されるたびに進捗状況を記録するために、各プロファイルのログを作成したいと思っています。
プロファイルログをプロファイル自体と一緒に保存したいので、NLogを動的に設定する必要があるため、実行時にfileTargetパスを指定する必要があります。
しかし、私はNLog.configの変数として、使いたい標準レイアウトを保存したいと思っていました。これは私が読んだことから一般的なアプローチであるようです。
ただし、次の行
fileTarget.Layout = "${myLayout}"
で...私はArgumentExceptionが取得:現時点では
LayoutRenderer cannot be found: 'myLayout'
を、私のレイアウト変数は単純です:
<variable name="myLayout" value="${message}" />
です変数を使用してAPIを介してレイアウトを指定することはできません。そうであれば私は驚くだろう。あるいは私はどこかで間違ってしまった?
解決策は簡単です。私はfileTarget.Layout
に手動で指定されたレイアウトを設定できますが、Plan Aが機能するかどうかはわかりません。
Meh ...ソースコードを変更するか、アプリケーションの設定ファイルにレイアウトを保存するだけですか?タイムスケールが与えられれば、それは思いがけないことです! :)しかし、応答に感謝します。 – CJM
もし私があなただったら私は同じ選択をしていたでしょう(私の返事を似たようなもの[ここ]で見てください(http://stackoverflow.com/questions/9523875/how-to-set-nlogs-filename-to-the-process -start-date/9524600#9524600))。 – AVIDeveloper
この回答は正確ではありません。下の私の答えを見てください。 – MarkR