摘要:[memo] Log4net (Windows form)
Log4net 這個工具不管是在Java或.net陣營,都是很紅的Log工具。
其中我覺得最麻煩的就是配置檔,如果設定有錯誤,幾乎沒甚麼錯誤訊息可以參考。
一、配置檔設定內容如下:
<log4net>
<appender name="A1" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level %logger - %message%newline" />
</layout>
</appender>
<appender name="A2" type="log4net.Appender.RollingFileAppender">
<file value="E:/log@"/>
<staticLogFileName value="false"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd.lo\g"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level %message%newline"/>
</layout>
</appender>
<appender name="A3" type="log4net.Appender.RollingFileAppender">
<file value="E:/logError@"/>
<staticLogFileName value="false"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd.lo\g"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level %logger - %message%newline"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR" />
<param name="LevelMax" value="ERROR" />
</filter>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="A2"/>
<appender-ref ref="A1"/>
<appender-ref ref="A3"/>
</root>
</log4net>
說明:
- 會將所有訊息輸出到A1、A2,其中A1為console模式。
- 而A3只會包含ERROR 層級以上的Log資料。
二、Log4net wrap
因為還有其他專案要用,所以就簡單包裝一下,以下為包裝的code。
using System;
using System.Collections.Generic;
using System.Text;
using log4net;
using log4net.Config;
namespace LogUtility
{
public class LogHelper
{
private static readonly ILog logger = LogManager.GetLogger(typeof(LogHelper));
public static void Error(Exception ex)
{
logger.Error(ex);
}
public static void Error(string message, Exception ex)
{
logger.Error(message, ex);
}
public static void Info(string message)
{
logger.Info(message);
}
public static void Debug(Exception ex)
{
logger.Debug(ex);
}
public static void Warn(Exception ex)
{
logger.Warn(ex);
}
///
/// 初始化 log4net 設定檔位置
///
/// firePath 例如:d:/config.xml
///
public static void InitConfig(string filePath)
{
XmlConfigurator.Configure(new System.IO.FileInfo(filePath));
}
}
}
三、使用方式如下:
//設定Log組態檔位置
LogHelper.InitConfig(AppDomain.CurrentDomain.BaseDirectory+"logConfig.xml");
//記錄Log
LogHelper.Info("填寫你想記錄的資訊");
四、參考範例網站
- http://hi.baidu.com/itpangdun/blog/item/5ef055117dd118fac2ce7922.html
- http://www.cnblogs.com/fuxuan1982929/articles/725047.html