1.新建一个空的ASP.Net 空项目,然后添加Default.aspx窗体
2.添加配置文件:log4net.config
1 <?xml version="1.0" encoding="utf-8"?> 2 <configuration> 3 4 <system.web> 5 <compilation debug="true" targetFramework="4.0" /> 6 </system.web> 7 8 <configSections> 9 <!--添加配置节点--> 10 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 11 </configSections> 12 13 <log4net> 14 <!--定义输出到数据库--> 15 <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender"> 16 <!--日志缓存写入条数--> 17 <!--bufferSize表示批处理的日志事件,可以避免每次日志事件都访问数据库,原本是<bufferSize value="100" />一百条才插入--> 18 <bufferSize value="1" /> 19 <!--日志数据库连接串--> 20 <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 21 <connectionString value="DATABASE=log4netDB;SERVER=DESKTOP-F0T373H\WZH;UID=sa;PWD=18855162320;Connect Timeout=15;" /> 22 <!--日志数据库脚本--> 23 <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[UserID],[UserName],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger,@UserId,@UserName, @message, @exception)" /> 24 <!--日志时间LogDate --> 25 <parameter> 26 <parameterName value="@log_date" /> 27 <dbType value="DateTime" /> 28 <layout type="log4net.Layout.RawTimeStampLayout" /> 29 </parameter> 30 <parameter> 31 <parameterName value="@thread" /> 32 <dbType value="String" /> 33 <size value="255" /> 34 <layout type="log4net.Layout.PatternLayout"> 35 <conversionPattern value="%thread" /> 36 </layout> 37 </parameter> 38 <!--日志类型LogLevel --> 39 <parameter> 40 <parameterName value="@log_level" /> 41 <dbType value="String" /> 42 <size value="50" /> 43 <layout type="log4net.Layout.PatternLayout"> 44 <conversionPattern value="%level" /> 45 </layout> 46 </parameter> 47 <!--日志对象LogLogger --> 48 <parameter> 49 <parameterName value="@logger" /> 50 <dbType value="String" /> 51 <size value="255" /> 52 <layout type="log4net.Layout.PatternLayout"> 53 <conversionPattern value="%logger" /> 54 </layout> 55 </parameter> 56 <!--自定义UserId --> 57 <parameter> 58 <parameterName value="@UserId" /> 59 <dbType value="String" /> 60 <size value="20" /> 61 <layout type="log4net保存到数据库中.MyLayout"> 62 <conversionPattern value="%Property{UserID}" /> 63 </layout> 64 </parameter> 65 <!--自定义UserName --> 66 <parameter> 67 <parameterName value="@UserName" /> 68 <dbType value="String" /> 69 <size value="50" /> 70 <layout type="log4net保存到数据库中.MyLayout"> 71 <conversionPattern value="%Property{UserName}" /> 72 </layout> 73 </parameter> 74 <!--日志信息Message --> 75 <!--<parameter> 76 <parameterName value="@message" /> 77 <dbType value="String" /> 78 <size value="4000" /> 79 <layout type="log4net.Layout.PatternLayout"> 80 <conversionPattern value="%message" /> 81 </layout> 82 </parameter>--> 83 <!--自定义Message --> 84 <parameter> 85 <parameterName value="@Message" /> 86 <dbType value="String" /> 87 <size value="200" /> 88 <layout type="log4net保存到数据库中.MyLayout"> 89 <conversionPattern value="%Property{Message}" /> 90 </layout> 91 </parameter> 92 <!--异常信息Exception --> 93 <parameter> 94 <parameterName value="@exception" /> 95 <dbType value="String" /> 96 <size value="2000" /> 97 <layout type="log4net.Layout.ExceptionLayout" /> 98 </parameter> 99 </appender> 100 <root> 101 <!--配置可输出日志级别--> 102 <level value="all"/> 103 <!--应用配置--> 104 <appender-ref ref="AdoNetAppender"/> 105 </root> 106 </log4net> 107 108 </configuration>
3.在项目中的Properties中AssemblyInfo.cs的末尾添加
1 [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
4.添加实体类:LogEntity.cs
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 6 namespace log4net保存到数据库中 7 { 8 public class LogEntity 9 { 10 public string UserID { get; set; } 11 public string UserName { get; set; } 12 13 public string Message { get; set; } 14 } 15 }