[C#] 程式中 加入 log4net

  • 1918
  • 0
  • 2017-08-03

使用log4net產生程式執行的log檔

1. 下載安裝log4net,網址:http://logging.apache.org/log4net/
    下載接壓縮後,將 log4net.dll 加入參考
    或是使用 nuget 下載安裝套件,在 套件管理主控台輸入下列指令

install-package log4net

  

2. 在專案下建立 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'.log'"/> <!--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>

3. 加入命名空間

using log4net;

4. Web 可以在  Global.asax 中指定 log4net 的設定檔

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

  win form 可以用下面寫法

XmlConfigurator.Configure(new System.IO.FileInfo(AppDomain.CurrentDomain.BaseDirectory + "log4net.config")); //log4net設定檔

5. 在程式中使用

-- Winform
static ILog logger = LogManager.GetLogger(typeof(Program));

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

..........略..........

logger.Info("紀錄程式執行資訊");

..........略..........
logger.Error("紀錄程式執行錯誤訊息");


參考網址:https://dotblogs.com.tw/yuanlin/2012/05/30/72479