曾經做過一個項目使用log4net日誌記錄包。前幾天一個新項目要做,怎麼也想不起來。在網上找了一下,感覺都比較麻煩。特此記錄,以備下次用到時,直接使用。
先是一個xml文件命名爲log4net.config。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net debug="True">
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="Log\AT.log"/>
<param name="datePattern" value="YY-MM-dd HH:mm"/>
<param name="AppendToFile" value="true"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
<appender name="HttpTraceAppender" type="log4net.Appender.ASPNetTraceAppender">
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="I:\net開發\mgShop\UnitTestProject\Log\"/>
<appendToFile value="True"/>
<rollingStyle value="Date"/>
<datePattern value="yyyyMMdd'.log'"/>
<staticLogFileName value="false"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %-5p %c - %m%n"/>
</layout>
</appender>
<root>
<!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) -->
<level value="All"/>
<!--<level value="ERROR" />-->
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>
</configuration>
然後是自定義一個日誌記錄的類。
public static class LogHelper
{
static log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
static LogHelper()
{
var logCfg = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "log4net.config");
log4net.Config.XmlConfigurator.ConfigureAndWatch(logCfg);
logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
}
public static void Debug(string message)
{
logger.Debug(message);
}
public static void Info(string message)
{
logger.Info(message);
}
public static void Error(string message)
{
logger.Error(message);
}
public static void Warn(string message)
{
logger.Warn(message);
}
}