log4netのは、ロギング機能知られているオープンソースコンポーネントです。.NETアプリケーションのログを含むメディアの様々な、にそれによって記録することができます。また、ファイル、コンソール、ウィンドウのトランザクションログとデータベース(MS SQL Serverの、アクセス、Oracle9iでは、DB2、SQLiteの)、そして私達ができます設定やログなどのレベルを表します。
そして、他のほとんどのオープンソースコンポーネントのように、log4netのも、過剰なJavaプロジェクトから来ました。Javaアプリケーションのlog4jからlog4netの。
log4netのの公式ウェブサイト:http://logging.apache.org/
最新バージョンのダウンロード:http://logging.apache.org/log4net/download_log4net.cgi 最新バージョンは次のとおりです。1.2.11
(A)特徴:
(1)オープンソースコードが表示されています。
(2).NETフレームワークとの互換性(.Net1.0,2.0,3.0,3.5,4.0)
(3)出力ログ情報の様々なサポート情報カスタマイズ形式のログ
全体のログ(4)支持XML動的な構成および構成管理プロセス
(5)モジュラー設計およびスケーラビリティ(インターフェース)
(6)高い柔軟性と性能を有します
(B)コアコンポーネント
log4netの4つのコアコンポーネントがあります。
(1)ロガー、レコーダ
(2)アペンダは、取り付けられています。
(3)レイアウト、レイアウト
(4)リポジトリ(ライブラリ)
レベル(c)のログ
log4netのは、私たちのために終わり、次の表で高いから優先順位を7つのログレベルを提供しています:
レベル |
AllowedMethod |
ブール型プロパティ |
優先順位 |
オフ |
|
|
最高 |
FATAL |
空致命的(...); |
BOOL IsFatalEnabled; |
|
RROR |
無効エラー(...); |
IsErrorEnabled BOOL; |
|
WARN |
ボイド(...)警告します。 |
BOOL IsWarnEnabled; |
|
INFO |
無効情報(...); |
BOOL IsInfoEnabled; |
|
デバッグ |
デバッグ(...)を無効に。 |
BOOL IsDebugEnabled; |
|
すべて |
|
|
最低 |
log4netのフレームワークでは、コンフィギュレーションファイルを設定することにより、各ログ・オブジェクトは、優先レベルのログが割り当てられます。あなたが明示的にレベルを割り当てるには、ログオブジェクトを与えていない場合、そのオブジェクトは、先祖からのレベル値を継承しようとします。(ルートノードの内部に配置されました)
たとえば、ログ・オブジェクトを作成し、彼のレベルはINFOに設定されています。従って、各フレームは、ブール型プロパティのログを設定します。あなたは適切なログメソッドを呼び出すと、フレームワークは、メソッドが実行できないかを決定するために、適切なブール型プロパティをチェックします。次のコード:
Logger.Info( "メッセージ")。
Logger.Debug( "メッセージ")。
Logger.Warn( "メッセージ")。
第一の方法については、ログレベルと、したがって、私たちは出力「メッセージ」を得ることができ、要求が渡されたログ(INFO)等との情報()レベル。
第二の方法は、デバッグ()レベルは、要求が拒否され、我々は、任意の出力を得ることができないログ従って、ログレベルロガー・ログ・オブジェクト(INFO)よりも低いです。同様に、第3ライン文に、我々は簡単に結論付けることができます。
ALLとOFF:表1の二つの特別なレベルがあります。ALL表現は、すべてのログを要求することができます。OFFすべての要求を拒否します。
次のように明示的に、オブジェクトのロガーブール型プロパティをチェックすることができます。
もし(logger.IsDebugEnabled)
{
Logger.Debug( "メッセージ")。
}
(D)ロガー
ロガーは、アプリケーションがメッセージを記録するために使用され、対話する必要がある重要なコンポーネントです。ログメッセージを生成する直接前処理は、レイアウト出力をフォーマットするだけでなく、後に表示されません。
次のようにこの部分は、また副層内のユーザコード、従来の使用と直接相互作用します。
フレームワークと呼ばれるlog4netのは、LogManagerのクラスロガーは、すべてのオブジェクトを管理するために使用される定義します。それは我々がすでに存在するLoggerオブジェクトを取得するために提供したパラメータの名前を使用して、のgetLogger()静的メソッドを持っています。Loggerオブジェクトフレームワークが存在しない場合は、それが私たちのためにLoggerオブジェクトを作成します。コードは次のよう:
log4net.ILogログ= log4net.LogManager.GetLogger( "ロガー名");
一般的に言って、私たちは、クラス(クラス)は、当社の継続的なログ記録クラスを追跡するために、のgetLogger()を呼び出すためのパラメータとして(タイプ)を入力します。タイプ(種類)の送信クラス(クラス)を取得するtypeof演算(クラス名)法を用いてもよいし、反射を得るために、以下の方法を使用することができます。
System.Reflection.MethodBase.GetCurrentMethod()。DeclaringType
いくつかのシンボル長が、後者は、アクセスクラス(クラス)メソッド呼び出しのタイプ(型)のようないくつかの用途に使用されてもよいです。
(E)のAppender
良いロギングフレームワークは、複数の出力先を生成することができるはずです。たとえば、コンソールに出力またはログファイルに保存されました。これらの要件を満たすことができるlog4netの。これは、出力媒体を定義するためにアペンダという名前のコンポーネントを使用しています。名前が示すように、これらのコンポーネントは、それらに取り付けられた出力ストリームにロガーロギング成分を出力しています。ログ・オブジェクトにアタッチよりアペンダコンポーネントを置くことができます。log4netのアペンダフレームワークは、いくつかのコンポーネントを提供します。コンポーネントの完全なリストについてはアペンダlog4netのマニュアルはlog4netのフレームワークの中で見つけることができますヘルプを提供します。書かれたのは、これらの既製の部品のアペンダを使用すると、一般的には必要ありません。しかし、あなたが好むならば、あなたはlog4net.Appender.AppenderSkeletonクラスから継承することができます。
(F)のレイアウト
最終的なフォーマットされた情報を介してユーザに出力を表示するためのレイアウトコンポーネント。出力情報は、我々が使用するコンポーネントのレイアウトの種類に主に依存し、様々なフォーマットで表示することができます。それは、直鎖状またはXMLファイルを指定できます。アペンダー成分とレイアウトコンポーネントとワーク。APIのヘルプブックは、異なるレイアウト・コンポーネントのリストがあります。被験者アペンダ、レイアウトのみオブジェクトに対応します。独自のレイアウトクラスを実装するには、ILayoutインタフェースを実装log4net.Layout.LayoutSkeletonクラスから継承する必要があります。
(七)リポジトリ
リポジトリは、メンテナンスログオブジェクト組織構造の主な原因です。log4netの以前のバージョンでは、フレームワークは、階層組織構造(階層構造)をサポートしています。これは、このレベルの構造的性質を実装したライブラリで、log4net.Repository.Hierarchy名前空間で定義されています。リポジトリを達成するために、log4net.Repository.ILoggerRepositoryインタフェースを実現する必要があります。しかし、通常、このインタフェースを直接実装しますが、log4net.Repository.LoggerRepositorySkeleton基底クラスの継承ではありません。log4net.Repository.Hierarchy.Hierarchyクラスの実装により、図書館システム(階層リポジトリ)。
あなたはユーザーlog4netのフレームワークであれば、それらを拡張するのではなく、あなたは、あなたのコード内でリポジトリのクラスを使用することはほとんどありません。代わりに、あなたは自動的にオブジェクトを管理し、ロギングするためのLogManagerクラスを使用する必要があります。
設定ファイルの詳細はlog4netのを使用しての背後にある各ノードを構成します。