簡單記錄 log4net 的用法

簡單記錄 log4net 的用法

因為最近開始使用到 log4net,特別寫這篇文章記錄一下。

log4net 可以到這裡下載:http://logging.apache.org/log4net/

下載完畢後先將 log4net.dll 加入參考,加入後會在 Bin 資料夾裡面多出 log4net.xml 檔,這個檔案內容非常多,是說明如何撰寫說明檔,有興趣的朋友可以看看,我們這裡先將他刪除。

然後新增一個 xml 格式的檔案,將他命名為 log4net.config ,我將他放在網站根目錄下,log4net.config 的設定


<log4net>
  <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="LogFiles/"/> <!--存放log檔案的路徑-->
    <staticLogFileName value="false"/>
    <appendToFile value="true"/>
    <rollingStyle value="Date"/>
    <datePattern value="yyyyMMdd.lo\g"/> <!--log檔案的命名-->
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%-5p %date{yyyy/MM/dd HH:mm:ss} %-20c{1} %-20M %m%n" />
    </layout>
  </appender>
  <root>
    <level value="ALL"/>
    <appender-ref ref="RollingFileAppender"/>
  </root>
</log4net>

上面的設定是將 log 檔案以天作分隔從在 LogFiles 資料夾中

再來設定 Global.asax

    {
        string log4netPath = Server.MapPath("~/log4net.config");
        log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(log4netPath));
    }

設定完上面兩個步驟就可以開始使用了

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

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            logger.Info("現在在 Page_Load 中");
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        logger.Info("按下 Button1");
    }
}

輸出結果

INFO  2012/05/30 12:18:09 _Default             Page_Load            現在在 Page_Load 中
INFO  2012/05/30 12:18:11 _Default             Button1_Click        按下 Button1

相關閱讀:
log4net 設定檔的官方範例
log4net 使用指南
log4net 中logger默认日志等级的设计意图详解
log4net的日志输出格式-log4net.Layout.PatternLayout用法