log4netのご紹介

免責事項:この記事では、著者とブログパークの合計に属し転載を歓迎しますが、この節で宣言され、著者の同意なしに保持され、記事ページの見かけ上の位置にある元の接続、法的責任を追及するそうでない場合は権利を与えられなければなりません。https://blog.csdn.net/mymhj/article/details/7516963

            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のを使用しての背後にある各ノードを構成します。

 

おすすめ

転載: blog.csdn.net/mymhj/article/details/7516963