1 添加引用。
2 添加配置。
代码
<?
xml version="1.0" encoding="utf-8"
?>
< configuration >
< configSections >
< section name ="log4net" type ="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</ configSections >
< log4net >
< logger name ="InfoLog" >
< level value ="INFO" />
< appender-ref ref ="ConsoleAppender" />
</ logger >
< logger name ="ErrorLog" >
< level value ="ERROR" />
< appender-ref ref ="ErrorLogAppender" />
</ logger >
< appender name ="ErrorLogAppender" type ="log4net.Appender.RollingFileAppender" >
< param name ="file" value ="FileLogData\ErrorLog.txt" />
< param name ="appendToFile" value ="true" />
< param name ="rollingStyle" value ="Size" />
< param name ="maxSizeRollBackups" value ="10" />
< param name ="maximumFileSize" value ="10MB" />
< param name ="staticLogFileName" value ="true" />
< layout type ="log4net.Layout.PatternLayout" >
< param name ="conversionPattern" value ="异常时间:%d 线程:[%t] 异常级别:%-5p 异常类:%c [%x] - %m%n" />
</ layout >
</ appender >
< appender name ="InfoLogAppender" type ="log4net.Appender.RollingFileAppender" >
< param name ="file" value ="FileLogData\InfoLog.txt" />
< param name ="appendToFile" value ="true" />
< param name ="rollingStyle" value ="Size" />
< param name ="maxSizeRollBackups" value ="10" />
< param name ="maximumFileSize" value ="10MB" />
< param name ="staticLogFileName" value ="true" />
< layout type ="log4net.Layout.PatternLayout" >
< param name ="conversionPattern" value ="操作时间:%d 线程:[%t] 日志级别:%-5p 日志类:%c [%x] - %m%n" />
</ layout >
</ appender >
< appender name ="ConsoleAppender" type ="log4net.Appender.ConsoleAppender" >
< layout type ="log4net.Layout.PatternLayout" >
< param name ="conversionPattern" value ="%d Thread:[%t] - %m%n" />
</ layout >
</ appender >
</ log4net >
</ configuration >
< configuration >
< configSections >
< section name ="log4net" type ="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</ configSections >
< log4net >
< logger name ="InfoLog" >
< level value ="INFO" />
< appender-ref ref ="ConsoleAppender" />
</ logger >
< logger name ="ErrorLog" >
< level value ="ERROR" />
< appender-ref ref ="ErrorLogAppender" />
</ logger >
< appender name ="ErrorLogAppender" type ="log4net.Appender.RollingFileAppender" >
< param name ="file" value ="FileLogData\ErrorLog.txt" />
< param name ="appendToFile" value ="true" />
< param name ="rollingStyle" value ="Size" />
< param name ="maxSizeRollBackups" value ="10" />
< param name ="maximumFileSize" value ="10MB" />
< param name ="staticLogFileName" value ="true" />
< layout type ="log4net.Layout.PatternLayout" >
< param name ="conversionPattern" value ="异常时间:%d 线程:[%t] 异常级别:%-5p 异常类:%c [%x] - %m%n" />
</ layout >
</ appender >
< appender name ="InfoLogAppender" type ="log4net.Appender.RollingFileAppender" >
< param name ="file" value ="FileLogData\InfoLog.txt" />
< param name ="appendToFile" value ="true" />
< param name ="rollingStyle" value ="Size" />
< param name ="maxSizeRollBackups" value ="10" />
< param name ="maximumFileSize" value ="10MB" />
< param name ="staticLogFileName" value ="true" />
< layout type ="log4net.Layout.PatternLayout" >
< param name ="conversionPattern" value ="操作时间:%d 线程:[%t] 日志级别:%-5p 日志类:%c [%x] - %m%n" />
</ layout >
</ appender >
< appender name ="ConsoleAppender" type ="log4net.Appender.ConsoleAppender" >
< layout type ="log4net.Layout.PatternLayout" >
< param name ="conversionPattern" value ="%d Thread:[%t] - %m%n" />
</ layout >
</ appender >
</ log4net >
</ configuration >
需要说明的是:<param name="file" value="FileLogData\InfoLog.txt" />这句是指生成的日志文件存放位置,此处是指在当前应用程序目录生成一个名为FileLogData的文件夹,在该文件夹下生成名为InfoLog.txt的日志文件。
3 在AssemblyInfo.cs文件中写入下面代码。
[assembly: log4net.Config.DOMConfigurator()]
这句很重要,如果不写,log4net就会失效。
完成了上面的配置之后,就可以使用log4net进行日志记录了。
当然,为了简便,通常的做法是把调用方法写在一个通用类里面,然后调用类的方法,如下:
代码
public
class
LogHelper
{
public static readonly log4net.ILog InfoLog = log4net.LogManager.GetLogger( " InfoLog " );
public static readonly log4net.ILog ErrorLog = log4net.LogManager.GetLogger( " ErrorLog " );
public LogHelper()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 写普通信息
/// </summary>
/// <param name="infoMsg"></param>
public static void WriteLog( string infoMsg)
{
// log4net.ILog InfoLog = log4net.LogManager.GetLogger("InfoLog");
string msg = "" ;
if (InfoLog.IsInfoEnabled)
{
InfoLog.Info(msg + infoMsg);
}
}
/// <summary>
/// 写错误信息
/// </summary>
/// <param name="infoMsg"></param>
/// <param name="e"></param>
public static void WriteLog( string infoMsg, Exception e)
{
string msg = " 异常信息: " ;
if (ErrorLog.IsErrorEnabled)
{
ErrorLog.Error(msg + infoMsg, e);
}
}
}
{
public static readonly log4net.ILog InfoLog = log4net.LogManager.GetLogger( " InfoLog " );
public static readonly log4net.ILog ErrorLog = log4net.LogManager.GetLogger( " ErrorLog " );
public LogHelper()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 写普通信息
/// </summary>
/// <param name="infoMsg"></param>
public static void WriteLog( string infoMsg)
{
// log4net.ILog InfoLog = log4net.LogManager.GetLogger("InfoLog");
string msg = "" ;
if (InfoLog.IsInfoEnabled)
{
InfoLog.Info(msg + infoMsg);
}
}
/// <summary>
/// 写错误信息
/// </summary>
/// <param name="infoMsg"></param>
/// <param name="e"></param>
public static void WriteLog( string infoMsg, Exception e)
{
string msg = " 异常信息: " ;
if (ErrorLog.IsErrorEnabled)
{
ErrorLog.Error(msg + infoMsg, e);
}
}
}
在需要使用的页面,直接调用,如:LogHelper.WriteLog("--------Start--------");