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)ログを出力

      //リクエスト・エンド・イベント  
      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。

 が生成される。

 

オープンソースのロギング・サービス「log4net」を使う

 

 

 

 

 

你可能感兴趣的:(apache,C++,c,xml,C#)