文脈から始めよう!ウェブアプリケーションとWindowsアプリケーション用のロガーDLLを開発するための良い方法
私の仕事では、ASP.NETのWebアプリケーションであるプロジェクトにログ機能を追加するように求められました。
私はそれがうまくいけば、私は自分のプロジェクトのためだけに行うことができましたが、それはあまり有用ではありません!だから私は他のプロジェクト(WebアプリケーションやWindowsアプリケーション)で使用できるDLLを作成したいと思います。
だから私は、これらの機能計画:新しいログファイルに書き込む前に、ファイルのログレベル、ファイルの場所、それを維持するための時間、最大サイズ:コンフィギュレーションのための
XMLファイルを。例えば、私は、ERRORとCRITICALのログだけが書き込まれるログファイルと、INFOとWARNING LOGSが書き込まれる別のファイルを持つことができます。
- ここ
ウェブアプリのか、勝利のアプリのために記録する機能しかし問題で、私は間違って行くことができ貴様の事を考えていると私は必ずたかったですそれを開発する前に私がしていることの
まず、WebアプリケーションかWindowsアプリケーションかを検出する必要があります。 this one
私はログの書き込み方法について考えていますが、ログの行を書くたびにファイルを開いて閉じなければなりません。私はそれがパフォーマンスで非常に貪欲な何かのように感じる。私が間違っている ?それを行う他の方法はありますか?
ウェブアプリケーションまたはマルチスレッドウィンドウアプリケーションの両方からログを記録するときに問題が発生する可能性があることも指摘しておきます。別の問題は、ログメソッドが一度に2回(2回)呼び出される可能性があり、そのためログファイルに同時にアクセスするという問題が発生することです。これらの問題に対処する最善の方法は何ですか?
最後に、この種のdllで問題になる可能性のある他のものが見えるかと思いますか?
ありがとうございました! :)
いいえ、再利用可能なログライブラリを作成することはできますが、既存のログライブラリを使用する方が時間がかかります。 –
'log4net'や' nlog'などを見てください。彼らはあなたの問題のほとんどをすでに解決しています。なぜあなたはWebアプリケーションとDesktopアプリケーションを区別する必要がありますか? –
これを探している可能性があります。https://msdn.microsoft.com/en-us/library/ff648951.aspx – r1verside