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)ログを出力
//リクエスト・エンド・イベント 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。
が生成される。