参考了 http://blog.csdn.net/woowindice/archive/2007/03/24/1540122.aspx
同时参考: http://www.cnblogs.com/dragonsuc/archive/2006/06/21/431888.aspx
这个介绍更全面些。
使用步骤:
1。下载log4net1.2.10 ,下载地址http://cvs.apache.org/dist/incubator/log4net/1.2.10/incubating-log4net-1.2.10.zip
2。添加log4net的引用到您的asp.net 2.0项目
3。asp.net2.0好象默认没有Global.asax文件了,所以要自己加一个。点项目右键来添加。
4。在Global.asax文件的Application_Start方法里增加代码:log4net.Config.XmlConfigurator.Configure();
5。在web.config文件里,编辑Configuration->Configsections 增加如下区域:
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
然后增加log4net区域如下:
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="c://Log4Net.log"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/>
</layout>
</appender>
<logger name="File">
<level value="Debug" />
<appender-ref ref="LogFileAppender" />
</logger>
</log4net>
整个web.config文件例如:
<!--
注意: 除了手动编辑此文件以外,您还可以使用
Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
“网站” -> “Asp.Net 配置”选项。
设置和注释的完整列表在
machine.config.comments 中,该文件通常位于
WindowsMicrosoft.NetFrameworkv2.xConfig 中
-->
< configuration >
< configSections >
< section name = " log4net " type = " log4net.Config.Log4NetConfigurationSectionHandler, log4net " />
</ configSections >
< appSettings >
< add key = " mt_url " value = " http://61.175.132.123/mt?iscorpsend=false&spid=%spid%&mobileid=%mobileid%&content=%content% " />
< add key = " net.bzbs.www.BssoftWebAPI " value = " http://www.bzbs.net/bswebapi/BssoftWebAPI.asmx " />
</ appSettings >
< connectionStrings />
< system.web >
<!--
设置 compilation debug = " true " 将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true 。
-->
< compilation debug = " true " />
<!--
通过 < authentication > 节可以配置 ASP.NET 使用的
安全身份验证模式,
以标识传入的用户。
-->
< authentication mode = " Windows " />
<!--
如果在执行请求的过程中出现未处理的错误,
则通过 < customErrors > 节可以配置相应的处理步骤。具体说来,
开发人员通过该节可以配置
要显示的 html 错误页
以代替错误堆栈跟踪。
< customErrors mode = " RemoteOnly " defaultRedirect = " GenericErrorPage.htm " >
< error statusCode = " 403 " redirect = " NoAccess.htm " />
< error statusCode = " 404 " redirect = " FileNotFound.htm " />
-->
< customErrors mode = " Off " />
</ system.web >
< log4net >
< appender name = " LogFileAppender " type = " log4net.Appender.FileAppender " >
< param name = " File " value = " c:/Log4Net.log " />
< layout type = " log4net.Layout.PatternLayout " >
< param name = " ConversionPattern " value = " %d [%t] %-5p %c %m%n " />
</ layout >
</ appender >
< logger name = " File " >
< level value = " Debug " />
< appender - ref ref = " LogFileAppender " />
</ logger >
</ log4net >
</ configuration >
配置完毕!下面就可以使用log4net了,就跟java里的log4j一样
比如在Default.aspx.cs里添加代码:
log4net.ILog logger = log4net.LogManager.GetLogger("File");
logger.Info(“测试log4net”);
=======================================
如果是写入数据库,则需要先建立数据库:
CREATE TABLE [dbo].[Log] (
[Id] [int] IDENTITY (1, 1) NOT NULL,
[Date] [datetime] NOT NULL,
[Thread] [varchar] (255) NOT NULL,
[Level] [varchar] (50) NOT NULL,
[Logger] [varchar] (255) NOT NULL,
[Message] [varchar] (4000) NOT NULL,
[Exception] [varchar] (2000) NULL
)
并且需要如下配置:
< log4net debug = " false " >
< root >
< level value = " ALL " />
< appender - ref ref = " ADONetAppender " />
</ root >
<!--
定义loger的名称和使用的appender
-->
< logger name = " AA " >
< level value = " ALL " />
< appender - ref ref = " ADONetAppender " />
</ logger >
< appender name = " ADONetAppender " type = " log4net.Appender.AdoNetAppender " >
<!--
定义几条存入数据库 有2条时才写入数据库,没有两条叫缓存
-->
< bufferSize value = " 2 " />
< connectionType value = " System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 " />
< connectionString value = " database=Log;server=(local);User ID=log;Password=log " />
< commandText value = " INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception) " />
< parameter >
< parameterName value = " @log_date " />
< dbType value = " DateTime " />
< layout type = " log4net.Layout.RawTimeStampLayout " />
</ parameter >
< parameter >
< parameterName value = " @thread " />
< dbType value = " String " />
< size value = " 255 " />
< layout type = " log4net.Layout.PatternLayout " >
< conversionPattern value = " %thread " />
</ layout >
</ parameter >
< parameter >
< parameterName value = " @log_level " />
< dbType value = " String " />
< size value = " 50 " />
< layout type = " log4net.Layout.PatternLayout " >
< conversionPattern value = " %level " />
</ layout >
</ parameter >
< parameter >
< parameterName value = " @logger " />
< dbType value = " String " />
< size value = " 255 " />
< layout type = " log4net.Layout.PatternLayout " >
< conversionPattern value = " %logger " />
</ layout >
</ parameter >
< parameter >
< parameterName value = " @message " />
< dbType value = " String " />
< size value = " 4000 " />
< layout type = " log4net.Layout.PatternLayout " >
< conversionPattern value = " %message " />
</ layout >
</ parameter >
< parameter >
< parameterName value = " @exception " />
< dbType value = " String " />
< size value = " 2000 " />
< layout type = " log4net.Layout.ExceptionLayout " />
</ parameter >
</ appender >
</ log4net >
log.Debug( " 这是我在使用Log4Net " );
当我测试的时候,发现一个意外情况,就是 <bufferSize value="2" />这里,把2换成其他数字,仍然不起作用,每次依然是插入两条记录,不知道怎么回事...