本人测试源码下载地址:http://files.cnblogs.com/chenghu/Log4Net_Test.rar
一 、保存到文件的方法
1,添加log4net.dll的引用。
2,替换一下配置文件。(本配置文件为测试使用 实际开发会有更多节点)

<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-1.0" /> </configSections> <log4net> <root> <level value="ALL" /> <appender-ref ref="LogFileAppender" /> </root> <appender name="LogFileAppender" type="log4net.Appender.FileAppender" > <param name="File" value="Loglog-file.txt" /> //日志文件保存的地方 <param name="AppendToFile" value="true" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="记录时间:%d 线程 ID:[%t] 日志级别:%-5p 出错类:%logger property:[%property{NDC}] 错误描述:%m%n" /> </layout> </appender> </log4net> <system.web> <compilation debug="true" targetFramework="4.0" /> </system.web> </configuration>
3,在该web项目中的AssemblyInfo.cs文件的最后一行中添加以下代码:
[assembly: log4net.Config.DOMConfigurator(ConfigFile = "Web.config", Watch = true)]
4,web项目的Default.aspx.cs的Page_Load中添加

protected void Page_Load(object sender, EventArgs e) { log4net.ILog log = log4net.LogManager.GetLogger("MyLogger"); log.Debug("hello"); }
参看来源:http://database.ctocio.com.cn/analysis/85/8992585_3.shtml
二、保存到数据库的方法
log4net是一个优秀的开源日志项目,现将本人使用写成一个demo,如下
1,添加log4net.dll的引用。
2:建立数据表
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
)
3:编写配置文件

<configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <system.web> <!-- ...... --> </system.web> <log4net> <root> <level value="ALL" /> <appender-ref ref="ADONetAppender" /> </root> <!-- <logger name="testApp.Logging"> <level value="ALL"/> <appender-ref ref="ADONetAppender" /> </logger> --> <appender name="ADONetAppender" type="log4net.Appender.ADONetAppender"> <bufferSize value="10" /> <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <connectionString value="server=localhost;database=demo;user id=sa;password=123456" /> <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> </configuration>
特别说明<bufferSize value="10" />,这是log信息记录的缓冲大小,(比如只有log信息记录达到10,
才会将log信息记录写入数据库)
4:在Global.asax.cs中
protected void Application_Start(Object sender, EventArgs e)
{
//读取配置信息
log4net.Config.DOMConfigurator.Configure();
}
5:在web项目的Default.aspx.cs文件里的Page_Load中添加
protected void Page_Load(object sender, EventArgs e)
{
log4net.ILog log = log4net.LogManager.GetLogger("MyLogger");
log.Debug("hello");
log.Info("log日志");
}