2011-10-20 7 views
2

NLogのファイルターゲットはpretty configurableですが、達成しようとしているものをサポートしていないようです。nlogを使用したコンソールアプリケーションのローリングファイルのログ

マイコンソールアプリケーションは、ログファイルにメッセージを書き込みますが、私はそれが二つのことをしたい:

    は、各実行に新しいログファイルを開始します
  • 。したがって、アプリケーションが起動するたびに、新しいログファイルを作成する必要があります。
  • 前回のログファイルを上書きしたり削除したりしないでください。x最新の実行を維持したいと思います。

アーカイブ*性質はかなり近いように見えるが、彼らは時間根拠、ない実行基づいてローリングを行います。

答えて

5

最初はやや簡単です。ファイル名を"log-${cached:${date:format=yyyyMMdd_HH_mm_ss}}.log"などに設定します。これにより、2番目の名前でファイルが設定され、各アプリケーションの実行時にキャッシュされます。

2番目のリクエストまでは、もう少し難しいです。 archiveEvery: "None"maxArchiveFiles: xを設定しようとするかもしれませんが、それが望ましい動作を生み出すかどうか、まったく何も保存しないかどうかはわかりません。

+2

同時呼び出しで同じファイルに書き込もうとすることを防ぐguidも追加することをお勧めします。 –

+0

アーカイブは機能しませんが、キャッシュされていると、実行中にログがスティックされ、毎回新しいログが作成されます。したがって、賞金を授与する。 – Thomas

+0

ええ、アーカイブのために必要な種類の動作を複製できませんでした。私はそれがnlog開発者からのリクエストに値する機能だと思います。それは一般的なもののように思える。私が取り組んできた1つのアプリケーションについては、実行ログは確かに行かなければならず、単純なカウントに基づくアーカイブは有益でした。彼らが追加するべきだと思うものです。 – drharris

関連する問題