獨立組態檔

將 log4net 設定抽離成獨立的 log4net.config,不要和 web.config 混寫在一起;透過組件屬性自動載入組態。

1 建立 log4net.config

放置到網站根目錄

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>

  <log4net>
    <!--日誌輸出至txt檔案-->
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <!--日誌根目錄:網站根目錄/logs-->
      <param name="File" value="logs\\" />
      <!--採用附加模式寫入檔案-->
      <param name="AppendToFile" value="true" />
      <!--最多保留10份備份日誌-->
      <param name="MaxSizeRollBackups" value="10" />
      <!--檔名依日期動態產生,不使用固定名稱-->
      <param name="StaticLogFileName" value="false" />
      <!--目錄結構 logs/yyyy/MM/yyyy-MM-dd.log -->
      <param name="DatePattern" value="yyyy\\MM\\yyyy-MM-dd&quot;.log&quot;" />
      <!--依照日期輪轉日誌檔-->
      <param name="RollingStyle" value="Date" />

      <!--日誌輸出格式-->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
      </layout>
    </appender>

    <!--根記錄器,綁定輸出元件-->
    <root>
      <level value="ALL" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>
  </log4net>
</configuration>Code language: HTML, XML (xml)

2 修改 AssemblyInfo.cs 完成初始化

開啟專案內 Properties/AssemblyInfo.cs,在檔案最末尾貼上:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]Code language: JSON / JSON with Comments (json)
  • ConfigFile="log4net.config":指定獨立組態檔位置(網站根目錄)
  • Watch=true:開啟熱載入,修改 log4net.config 不用重啟網站即可立即生效

3 頁面呼叫範例程式碼

using log4net;

public partial class Default : System.Web.UI.Page
{
    // 建立日誌執行個體
    public ILog log = LogManager.GetLogger("Default.aspx頁面專用記錄器");

    protected void Page_Load(object sender, EventArgs e)
    {
        log.Info("一般資訊日誌");
        log.Error("錯誤日誌");
        log.Debug("偵錯資訊");
    }
}

獨立組態檔

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *