編輯應用程式 App.config
App.config插入下列設定,從<configSections>開始
(1) Log4NetModule為自訂義模組名稱,等會後面會呼叫
(2) 輸出log檔案至特定資料夾,並自動創建子資料夾 年-月-日
(3) <rollingStyle>為Date,表示會根據時間條件觸發產生新的log檔案
(4) <datePattern> 表示每分鐘會創立一個新的log檔案名稱為yyyy-MM-dd HHmm'.txt'
(5) <staticLogFileName> false表示不會全部儲存在同一個log檔案
(6) <ConversionPattern>表示輸出的內容
(7) <appender-ref ref="Log4NetModule">呼叫前面設定的模組名稱
開啟AssemblyInfo.cs
加入下列設定
// 加入lot4net讀取預設App.config
[assembly:log4net.Config.XmlConfigurator(Watch =true)]
=========================================
using log4net;
加入一個ILog實體
private static readonly ILog log =
LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
GUI加入一個timer,每20秒執行一次DoJob
private void DoJob()
{
for(int i=10; i>=0; i--)
{
var ret = 10 / i;
log.Info($"10/{i}={ret}");
}
}
按下Start啟動timer
private void timer1_Tick(object sender, EventArgs e)
{
try
{
log.Info("Start to do job!");
DoJob();
log.Info("Stop doing job");
}
catch (Exception exception)
{
log.Error("DoJob has encounter an error ");
log.Error(exception. Message);
}
}
開始執行,自動創立C:\temp\logs\目錄, 並自動創建子資料夾 年-月-日
每次執行達到1分鐘便自動創立一個新的log檔案
log檔案會記錄如下:
以INFO標籤提示每次10/i的計算結果
以ERROR標籤提示意外發生,並列出意外的訊息(發生除以0)
參考資料
- 如何使用 log4net 以日期为文件名输出
- log4net 按天与按小时记日志的配置
- log4net按日志级别(debug,info,warn,error,fatal)生成日志目录,同时每小时生成一个日志文件
- Apache log4net™ Config Examples
-
How to configure log4net to print to console in debug mode
-
Log4Net doesn’t write log in release mode - Console Application
-
Log4net does not write the log in the log file