C#でlog4netを操作する方法

アプリケーションで作業しているときは、アプリケーション内の一連のイベント、ユーザーアクション、さらには発生したエラーなどを含むアプリケーションデータをログに記録したい場合がよくあります。使用できるロギングフレームワークはたくさんありますが、log4netは、.NETで構築または開発されたアプリケーションで使用するための最も人気のあるロギングフレームワークの1つです。これはオープンソースライブラリ(Java用の一般的なlog4jオープンソースライブラリのポート)であり、.NETのさまざまなログターゲットにアプリケーションデータを記録するために使用できます。

log4netのインストール 

log4netの使用を開始する最も簡単で迅速な方法は、NuGetパッケージマネージャーを使用してインストールすることです。Visual Studioでコンソールアプリケーションプロジェクトを作成したとすると、次の手順に従って、NuGetManagerを介してlog4netをインストールできます。

  1. 「ソリューションエクスプローラーウィンドウ」で、プロジェクトを選択して右クリックします
  2. [NuGetパッケージの管理...]をクリックします
  3. 「オンライン」をクリックし、検索ボックスにlog4netと入力します
  4. インストールするlog4netパッケージを選択します
  5. 「インストール」をクリックして、インストールプロセスを開始します

この記事の執筆時点で、log4netの最新の安定版リリースは2.0.5です。NuGetパッケージマネージャーを介してlog4netをインストールすると、プロジェクトへの参照として追加されたlog4netアセンブリを確認できます。

log4netの構成

log4netパッケージが正常にインストールされたので、プロジェクトのPropertiesフォルダーにあるAssemblyInfo.csファイルに次の行を追加します。これが指定されていない場合、構成設定は考慮されません。

[アセンブリ:log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config"、Watch = true)]

または、app.configまたはweb.configファイルで同じことを言及することもできます。

[アセンブリ:log4net.Config.XmlConfigurator(Watch = true)]

log4net構成メタデータが他のファイル(つまり、web.configファイルまたはapp.configファイル以外)にある場合は、代わりに次のように指定できます。

[アセンブリ:log4net.Config.XmlConfigurator(ConfigFile = "log4net.config"、Watch = true)]

次のステップは、app.configまたはアプリケーションのweb.configファイルでlog4netに必要な構成の詳細を指定することです。コンソールアプリケーションプロジェクトを使用していると仮定して、以下に示すように、app.configファイルに「log4net」という名前の構成セクションを追加します。

次に、app.configファイルの要素の後にセクション「」を追加します。次に、「」セクション内に、以下のコードスニペットに示すように構成の詳細を配置します。

log4netを構成するために必要なのはこれだけです。それをコードでどのように使用できるかを見てみましょう。この要素は、使用するロガーの名前とタイプを指定するために使用されます。この例では、ローリングファイルアペンダーを使用しています。ただし、利用可能なアペンダーには他にも多くの種類があります。たとえば、AdoNetAppender、AspNetTraceAppender、ConsoleAppenderなどです。完全なリストと他のアペンダーの構成方法は次のとおりです。

log4netの使用 

以下に示すコードスニペットに示すように、クラスでLogManagerクラスのGetLogger静的メソッドを呼び出してILogへの参照を作成します。

プライベート静的読み取り専用log4net.ILoglog = 

log4net.LogManager.GetLogger

(System.Reflection.MethodBase.GetCurrentMethod()。DeclaringType);

これで、logという名前のインスタンスを使用して、構成されたターゲットにデータをログに記録できます。次のコードスニペットは、ログインスタンスを利用してデータをログに記録する方法を示しています。

log.Debug( "これはデバッグメッセージです");

log.Info( "これは情報メッセージです");

log.Warn( "これは警告メッセージです");

log.Error( "これはエラーメッセージです");

log.Fatal( "これは致命的なメッセージです");

これは、log4netを使用して例外メッセージをテキストファイルに記録する方法を示す完全なコードリストです。

クラスプログラム

   {{

       static readonly log4net.ILog log =

       log4net.LogManager.GetLogger

(System.Reflection.MethodBase.GetCurrentMethod()。DeclaringType);

       static void Main(string [] args)

       {{

           試してみてください

           {{

               新しいException( "これはテストメッセージです...");をスローします。

           }

           catch(例外例)

           {{

               log.Error(ex.Message);

           }          

           Console.Read();

       }

   }

上記のプログラムを実行すると、.logという名前のテキストファイルが作成され、指定された例外メッセージがタイムスタンプとともにログに記録されます。log4netをプログラムで使用することもできます。つまり、log4netをプログラムで構成すると、前に説明した構成が不要になります。