aspxページ内(ASP.NET)でログ出力を行う方法(log4net編)

.NET開発環境でログ出力を行うにはいくつか方法がありますが、「log4net」を利用する方法をご紹介します。

また、ASP.NETと普通のアプリケーションでは設定が少し異なりますが、今回はASP.NETの例を。

log4netを利用する理由ですが、以下の理由があります。

ファイルのロックを考慮する必要が少ない・・・自前でテキストファイルに各方式だと、複数のスレッドから同時に書かれた場合などに、ファイルをロックして、書き込みエラーが出る場合があります。こういった考慮をlog4netがやってくれるので、便利です。

ログのローテーションをやってくれる・・・運用が長期に及ぶと、どうしても、ログファイルの容量が大きくなってきてしまいます。その場合、ファイルをリネームして退避する処理を記述しなければなりませんが、log4netなら簡単な設定ファイルの記述で実行してくれます。

では、早速、ASP.NETのプロジェクトにlog4netのログ出力環境をセットアップしてみましょう。

 

1.log4netのダウンロード

まず、log4netのプロジェクトページからモジュールをダウンロードしてきます。

私は今回は、「log4net-1.2.11-bin-newkey.zip」をダウンロードしました。

落としたファイルを解凍すると、「…log4net-1.2.11binnet」というディレクトリができます。

この中に.NETのバージョンごとのフォルダがありますので、自分のターゲットに適したフォルダを見てみましょう。私はターゲットは.net ver3.5なので、「3.5」フォルダの中になります。

その中に、「log4net.dll」と「log4net.xml」があります。

 

2.参照を追加

「参照の追加」から、先程確認した「log4net.dll」を追加します。

image
 

 

3.Global.asaxの追加と編集

Global.asaxがプロジェクトに存在していない場合は、「新しい項目の追加」から、「グローバル アプリケーション クラス」を追加しましょう。

image
 

 

それでは、Global.asaxのメソッド、Application_Startに以下の一文を記述します。

//VB.netの場合
log4net.Config.XmlConfigurator.Configure(New System.IO.FileInfo("c:/conf/log4net.xml"));
//C#の場合
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("c:/conf/log4net.xml"));

 

4.log4net.xmlの配置と編集

上記のコードで指定した場所に、「1.」で確認したlog4net.xmlをコピーして置き、以下の編集を行います。元々の設定ファイル「log4net.xml」にはいろいろな設定があるので、シンプルに、丸ごと以下の記述としました。

<?xml version="1.0" encoding="utf-8" ?>
  <configuration>

    <log4net>

      <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
        <File value="C:logmudebug.log" />
        <AppendToFile value="true" />
        <layout type="log4net.Layout.PatternLayout">
          <ConversionPattern value="%d [%t] %-5p %c - %m%n" />
        </layout>
      </appender>

      <root>
        <level value="DEBUG" />
        <appender-ref ref="LogFileAppender" />
      </root>

    </log4net>

  </configuration>

 

5.ログ出力のコードを記述

では、実際にログを出力したいクラスに記述を行います。

クラスの最初に、

log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
 

を書き、出力部分で、

logger.Debug("ログの出力!");

 

と書きます。

実行してみると、以下のように書かれました。

2012-06-14 13:42:10,926 [4] DEBUG SFDCService._Default – ログの出力!

ASP.NETでVisualStudioのデバッグコンソールにも出力したい場合は、別記事を参考にしてください。

 



こんな記事も関係あるかも。読んでみてね。

2 Responses to “aspxページ内(ASP.NET)でログ出力を行う方法(log4net編)”

  1. […] ードなので、「Console.WriteLine」などに適宜変更してください。 log4netによるログ出力を行いたい場合は、別記事「aspxページ内(ASP.NET)でログ出力を行う方法(log4net編)」を参照してください。 […]

  2. […] 前回の記事でASP.NETでログ出力を行う方法を説明しました。 […]

コメントを残す

サブコンテンツ

このページの先頭へ