log4net(Log For Net)是Apache开源的应用于.Net框架的日志记录工具,详细信息参见Apache网站.它是针对Java的log4j(Log For Java的)姊妹工具.用过log4j的都知道,它功能强大,可配置性灵活,线程安全,对日志的输出管理和级别管理方便。具体的使用方法往下看。
首先你应该下载log4net.dll并引入到你的项目References中,或者把源代码项目作为你工程的一部分加入到你的工程当中。单击这里下载Log4net 。
使用log4net需要知道其中两个比较重要的概念:logger 和 appender。前者是日志记录对象,后者是日志记录的目标,包括控制台,文件,定量大小的文件,远程广播。也就是说我们使用log4net的过程可以是这样的:获得一个用来记录日志的工具对象logger,然后为logger对象指定日志的记录位置.美妙的是,这一切工作都可以在Web.config配置文件中完成,所用的代码极少.
其配置如下:
先在web.config中的<configuration>节点下添加如下配置:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
<param name="File" value="c:\Applog.txt" />
<param name="datePattern" value="yyyy-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>
<root>
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
</root>
</log4net>
从上面的配置中可以看到定义了多个appender,每一个appender就是一个日志记录的目标。root节点指定了选用哪一个 appender. 在这里我选用了LogFileAppender。
到这里配置就基本上完成了,但是怎么使用上面的配置呢?log4net为我们提供了在应用程序启动时加载配置信息的入口,很简单,在Global.asax.cs的Application_Start过程中添加如下代码:
log4net.Config.DOMConfigurator.Configure();
同时在Application_Error中加以下代码用于捕捉异常信息:
log4net.ILog logger = log4net.LogManager.GetLogger("Logger");
//关键就是这一句
Exception ex = Server.GetLastError().GetBaseException();
StringBuilder sb = new StringBuilder();
sb.Append(ex.Message);
sb.Append("\r\nSOURCE: " + ex.Source);
sb.Append("\r\nFORM: " + Request.Form.ToString());
sb.Append("\r\nQUERYSTRING: " + Request.QueryString.ToString());
sb.Append("\r\n引发当前异常的原因: " + ex.TargetSite);
sb.Append("\r\n堆栈跟踪: " + ex.StackTrace);
logger.Error(sb.ToString());
好了,到此为止整个配置过程完成了,下面是怎么调用的问题了。
public class WebForm2 : System.Web.UI.Page
{
private log4net.ILog log = log4net.LogManager.GetLogger(typeof(WebForm2));
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
log.Info("程序已经启动");
log.Debug("程序开始调试");
}
}
在C:\下面会生成一个Applog.txt文本文件,打开看看,里面就有你写入的日志。
首先你应该下载log4net.dll并引入到你的项目References中,或者把源代码项目作为你工程的一部分加入到你的工程当中。单击这里下载Log4net 。
使用log4net需要知道其中两个比较重要的概念:logger 和 appender。前者是日志记录对象,后者是日志记录的目标,包括控制台,文件,定量大小的文件,远程广播。也就是说我们使用log4net的过程可以是这样的:获得一个用来记录日志的工具对象logger,然后为logger对象指定日志的记录位置.美妙的是,这一切工作都可以在Web.config配置文件中完成,所用的代码极少.
其配置如下:
先在web.config中的<configuration>节点下添加如下配置:
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
从上面的配置中可以看到定义了多个appender,每一个appender就是一个日志记录的目标。root节点指定了选用哪一个 appender. 在这里我选用了LogFileAppender。
到这里配置就基本上完成了,但是怎么使用上面的配置呢?log4net为我们提供了在应用程序启动时加载配置信息的入口,很简单,在Global.asax.cs的Application_Start过程中添加如下代码:
![](/Images/OutliningIndicators/None.gif)
同时在Application_Error中加以下代码用于捕捉异常信息:
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
在C:\下面会生成一个Applog.txt文本文件,打开看看,里面就有你写入的日志。