2017-01-04 9 views
1

文脈から始めよう!ウェブアプリケーションとWindowsアプリケーション用のロガーDLLを開発するための良い方法

私の仕事では、ASP.NETのWebアプリケーションであるプロジェクトにログ機能を追加するように求められました。

私はそれがうまくいけば、私は自分のプロジェクトのためだけに行うことができましたが、それはあまり有用ではありません!だから私は他のプロジェクト(WebアプリケーションやWindowsアプリケーション)で使用できるDLLを作成したいと思います。

だから私は、これらの機能計画:新しいログファイルに書き込む前に、ファイルのログレベル、ファイルの場所、それを維持するための時間、最大サイズ:コンフィギュレーションのための

  • XMLファイルを。例えば、私は、ERRORとCRITICALのログだけが書き込まれるログファイルと、INFOとWARNING LOGSが書き込まれる別のファイルを持つことができます。

    • ここ

ウェブアプリのか、勝利のアプリのために記録する機能しかし問題で、私は間違って行くことができ貴様の事を考えていると私は必ずたかったですそれを開発する前に私がしていることの

まず、WebアプリケーションかWindowsアプリケーションかを検出する必要があります。 this one

私はログの書き込み方法について考えていますが、ログの行を書くたびにファイルを開いて閉じなければなりません。私はそれがパフォーマンスで非常に貪欲な何かのように感じる。私が間違っている ?それを行う他の方法はありますか?

ウェブアプリケーションまたはマルチスレッドウィンドウアプリケーションの両方からログを記録するときに問題が発生する可能性があることも指摘しておきます。別の問題は、ログメソッドが一度に2回(2回)呼び出される可能性があり、そのためログファイルに同時にアクセスするという問題が発生することです。これらの問題に対処する最善の方法は何ですか?

最後に、この種のdllで問題になる可能性のある他のものが見えるかと思いますか?

ありがとうございました! :)

+7

いいえ、再利用可能なログライブラリを作成することはできますが、既存のログライブラリを使用する方が時間がかかります。 –

+1

'log4net'や' nlog'などを見てください。彼らはあなたの問題のほとんどをすでに解決しています。なぜあなたはWebアプリケーションとDesktopアプリケーションを区別する必要がありますか? –

+0

これを探している可能性があります。https://msdn.microsoft.com/en-us/library/ff648951.aspx – r1verside

答えて

0

ホイールを再発明する価値はありません。 log4netライブラリを見ることができます。 Log4netは、TXT、XML、SQL、MSMQなどにログを書き込むことをサポートしています。私が示唆しているのは、一連のログを書くことは、アプリケーションの実行をある程度ブロックすることです。したがって、TXTやSQLのロギングを行う代わりに、MSMQのロギング(アプリケーションのコードをブロックしないようにします)を実行します。メッセージキューを読み込んで別のSQLデータベースにログを書き込むためのWindowsサービスがあります。

+0

私はたぶんホイールを再発明しようとしています。たぶん、私は最終的に既存のソリューションでそれを行うでしょう、私はかなりすべてのソリューションは非常に良いことを確信しています。しかし、とにかく、書き直すことは私のための良い運動になることができます。私はまだ私の仕事で見習いです、私は学ばなければなりません。私はそれを簡単に行うことができるツールがあることを知っていました。しかし、とにかく、私はそれらの問題に対処する方法を学ぶことさえしようとしたい。覚えておいても役に立たないとは思えません。 –

+0

工業的なロギングライブラリを効果的に活用するには、学習価値のあるスキルと長期的には非常に貴重なものがあります。 ) –

+1

私は完全に同意し、私はあなたのすべての提案に注意を払い、おそらく彼らにすぐに一見を与えるでしょう。しかし、私はとにかく私のためにもそれらの答えを見つけようとします。 –

0

あなたはSerilogにELMAH にhttps://elmah.github.io/ または を試してみることができます:https://serilog.net/ 両方を、log4netの(log4netのより多分小さい)として、 "古典" です。以前の答えによると、車輪を再構築するために、おそらく一種のコーディングの楽しみを除いて、何の利益もありません。

関連する問題