1. 程式人生 > >winfrom下使用log4簡單配置日誌

winfrom下使用log4簡單配置日誌

1:下載log4net.dll檔案,然後在專案中新增引用;
2:新建xml檔案,配置log4,配置資訊如下:

<?xml version="1.0" encoding="utf-8" ?>

<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>

  <log4net>
    <root
>
<level value="WARN" /> <appender-ref ref="LogFileAppender" /> <appender-ref ref="ConsoleAppender" /> </root> <logger name="testApp.Logging"> <level value="DEBUG"/> </logger> <appender name="LogFileAppender" type="log4net.Appender.FileAppender"
>
<param name="File" value="log\log-file.txt" /> <param name="AppendToFile" value="true" /> <layout type="log4net.Layout.PatternLayout"> <param name="Header" value="[Header]&#13;&#10;"/> <param name="Footer" value="[Footer]&#13;&#10;"
/>
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="DEBUG" /> <param name="LevelMax" value="FATAL" /> </filter> </appender> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" > <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /> </layout> <!--<layout type="log4net.Layout.SimpleLayout"/>--> </appender> </log4net> </configuration>

注意:新建的xml檔案必須放在debug目錄下;
3:在Program.cs中初始化log4,資訊如下:

    string assemblyFilePath = Assembly.GetExecutingAssembly().Location;
            string assemblyDirPath = Path.GetDirectoryName(assemblyFilePath);
            string configFilePath = assemblyDirPath + " \\Log4.xml";
            log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(configFilePath));

            ILog log = LogManager.GetLogger("testApp.Logging");
            Console.WriteLine("日誌記錄開始....");

4:新建winform窗體,新增一個按鈕測試
log4net.ILog log = log4net.LogManager.GetLogger(“testApp.Logging”);//獲取一個日誌記錄器
log.Info(DateTime.Now.ToString() + “:開始點下按鈕…….”);//寫入一條新log
try
{
//記錄錯誤日誌
log.Error(“打算用1除以0:”, new Exception(“在窗體中可能要發生一個異常!”));
int i = 0;
int j = 1;
int s = j / i;
}
catch (Exception ec)
{
//記錄嚴重錯誤
log.Fatal(“在窗體中發生了一個致命錯誤”, ec);
}

        log.Info(DateTime.Now.ToString() + ":按鈕點選完成.......");//寫入一條新log

5:基本完成,開啟debug資料夾,發現多了log資料夾,表示成功!