log4netの環境設定及び実装例
2010/01/04 20:03Update
log4netの導入、設定及び実装例
1、log4netをダウンロード&プロジェクトに追加
1)log4net プロジェクト ホーム
http://logging.apache.org/log4net/
2)log4netをダウンロード
http://logging.apache.org/log4net/download.html
ダウンロードしたファイルを適当な場所に解凍する。
解凍先に「log4net.dll」ファイルがあることを確認できる。
3)log4netをプロジェクトに追加
・ログを出力したいプロジェクトの「参照設定」に右クリック
・「参照の追加」をクリック
・「参照」タブを選択
・「ファイルの場所」に「log4netの解凍先」を選択
・「log4net.dll」をクリック、「OK」ボタンをクリックしたら完了
2、log4net設定
log4netを利用する前に、ちょっとした設定が必要になる。
簡単に説明する
適当なファイル名で例えばlog4net.xmlというファイルを作成する。
log4net.xml
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="Console" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<!-- Pattern to output the caller's file name and line number -->
<conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />
</layout>
</appender>
<appender name="BusinessLog" type="log4net.Appender.RollingFileAppender">
<file value="c:/MyAppBiz" />
<appendToFile value="true" />
<maximumFileSize value="10000KB" />
<maxSizeRollBackups value="2" />
<param name="DatePattern" value='"."yyyy-MM-dd".log"' />
<param name="RollingStyle" value="date " />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level (%class.%method:%line) - %message%newline" />
</layout>
</appender>
<appender name="DebugLog" type="log4net.Appender.RollingFileAppender">
<file value="c:/MyAppDebug" />
<appendToFile value="true" />
<maximumFileSize value="10000KB" />
<maxSizeRollBackups value="2" />
<param name="DatePattern" value='"."yyyy-MM-dd".log"' />
<param name="RollingStyle" value="date " />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{yyyy-MM-dd HH:mm:ss,fff} [%thread] %-5level (%class.%method:%line) - %message%newline" />
</layout>
</appender>
<!--
<root>
<level value="DEBUG" />
<appender-ref ref="Console" />
<appender-ref ref="BusinessLog" />
</root>
-->
<logger name="BusinessLogger">
<level value="INFO" />
<appender-ref ref="BusinessLog" />
</logger>
<logger name="DebugLogger">
<level value="DEBUG" />
<appender-ref ref="DebugLog" />
</logger>
</log4net>
※log4net.xmlの詳細について、解説を省略する。
※conversionPatternの解説について、次の記事を参照できる。
■[C#] Log4net(12) ConversionPatternの詳細
http://d.hatena.ne.jp/shima111/20060703/p1
3、log4net汎用クラスを作成する
log4netを利用しやすくなるため、汎用クラスを作成する。
例:
using log4net;
using log4net.Appender;
using log4net.Config;
namespace Common.Log
{
/// <summary>
/// ログ クラス
/// </summary>
public class Loggers
{
private static String LOG4NET_CONF_FILE = "C:\\myproject\\Log\\log4net.xml"; //適当なディレクトリ名に変更
private ILog biz;
private ILog debug;
private static Loggers instance = new Loggers();
/// <summary>
/// コンストラクタ
/// </summary>
private Loggers()
{
XmlConfigurator.Configure(new System.IO.FileInfo(LOG4NET_CONF_FILE));
biz = LogManager.GetLogger("BusinessLogger");
debug = LogManager.GetLogger("DebugLogger");
}
/// <summary>
/// ビジネスログ
/// </summary>
/// <returns></returns>
public static ILog BusinessLog
{
get { return instance.biz; }
}
/// <summary>
/// デバッグログ
/// </summary>
/// <returns></returns>
public static ILog DebugLog
{
get { return instance.debug; }
}
}
}
4)ログを出力
例えば、Global.asax.cs
//リクエスト・エンド・イベント
protected void Application_EndRequest(object sender, EventArgs e)
{
Loggers.DebugLog.Debug("Request DebugLog.Debug。");
Loggers.BusinessLog.Debug("Request BusinessLog.Debug。");
Loggers.BusinessLog.Info("Request BusinessLog.Debug。");
}
実行すると、
c:/MyAppBiz.2010-01-04.log
2010-01-04 18:21:48,734 [8] DEBUG (Myapp.ServerEntry.Global.Application_EndRequest:65) -Request DebugLog.Debug。
c:/MyAppDebug.2010-01-04.log
2010-01-04 18:21:48,736 [8] DEBUG (Myapp.Global.Application_EndRequest:67) - Request BusinessLog.Info。
が生成される。
Sponsored Link
- Relative Articles
- Console.Out.WriteLineでコンソールで出力する - (2009/10/15 16:09)
- FolderBrowserDialog - フォルダの参照ダイアログの使い方 - (2009/11/16 11:32)
- C#イベントログの汎用実装 一例 - (2009/12/02 17:49)
- ASP.NETプログラミング Tips - (2009/10/16 14:32)