首先讲把日志保存在数据库中
日志需引用 Log4net程序包
然后配置文件
1 <configSections> 2 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 3 </configSections> 4 5 <log4net> 6 <appender name="ADONetAppender" type="log4net.Appender.ADONetAppender"> 7 <!--这是log信息记录的缓冲大小,(比如只有log信息记录达到10, 8 才会将log信息记录写入数据库)--> 9 <bufferSize value="1" /> 10 <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 11 <!--<connectionString value="data source=(local);initial catalog=TestDB;integrated security=false;persist security info=True" />--> 12 <connectionString value="DATABASE=LX0830;SERVER=127.0.0.1;UID=sa;PWD=554438;Connect Timeout=15;" /> 13 <commandText value="INSERT INTO ErrorLog ([dtDate],[sThread],[sLevel],[sLogger],[sMessage],[sException]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" /> 14 <parameter> 15 <parameterName value="@log_date" /> 16 <dbType value="DateTime" /> 17 <layout type="log4net.Layout.RawTimeStampLayout" /> 18 </parameter> 19 <parameter> 20 <parameterName value="@thread" /> 21 <dbType value="String" /> 22 <size value="100" /> 23 <layout type="log4net.Layout.PatternLayout"> 24 <conversionPattern value="%t" /> 25 </layout> 26 </parameter> 27 <parameter> 28 <parameterName value="@log_level" /> 29 <dbType value="String" /> 30 <size value="200" /> 31 <layout type="log4net.Layout.PatternLayout"> 32 <conversionPattern value="%p" /> 33 </layout> 34 </parameter> 35 <parameter> 36 <parameterName value="@logger" /> 37 <dbType value="String" /> 38 <size value="500" /> 39 <layout type="log4net.Layout.PatternLayout"> 40 <conversionPattern value="%logger" /> 41 </layout> 42 </parameter> 43 <parameter> 44 <parameterName value="@message" /> 45 <dbType value="String" /> 46 <size value="3000" /> 47 <layout type="log4net.Layout.PatternLayout"> 48 <conversionPattern value="%m" /> 49 </layout> 50 </parameter> 51 <parameter> 52 <parameterName value="@exception" /> 53 <dbType value="String" /> 54 <size value="4000" /> 55 <layout type="log4net.Layout.ExceptionLayout" /> 56 </parameter> 57 </appender> 58 <!-- setup the root category, add the appenders and set the default level --> 59 <root> 60 <level value="WARN"/> 61 <level value="INFO"/> 62 <level value="DEBUG"/> 63 <level value="FINE"/> 64 <appender-ref ref="ADONetAppender" /> 65 </root> 66 <!-- specify the level for some specific categories --> 67 <logger name="iNotes"> 68 <level value="WARN"/> 69 <level value="INFO"/> 70 <level value="DEBUG"/> 71 <level value="FINE"/> 72 <appender-ref ref="ADONetAppender"/> 73 </logger> 74 <logger name="StellaLogger"> 75 <level value="ALL"/> 76 <appender-ref ref="AdoNetAppender" /> 77 </logger> 78 </log4net>
Global
log4net.Config.XmlConfigurator.Configure(new FileInfo(Server.MapPath("~/Web.config")));
在需要使用日志的地方放置如下代码
1 private static log4net.ILog myLogger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 2 private static log4net.ILog log = null; 3 private static object lockHelper = new object(); 4 public static log4net.ILog Log 5 { 6 get 7 { 8 if (log == null) 9 lock (lockHelper) 10 if (log == null) 11 log = log4net.LogManager.GetLogger("File"); 12 return log; 13 } 14 }
使用日志

当然 数据库要有相应的表
CREATE TABLE [dbo].[ErrorLog]( [nid] [int] IDENTITY(1,1) NOT NULL, [dtDate] [datetime] NULL, [sThread] [varchar](50) NULL, [sLevel] [varchar](200) NULL, [sLogger] [varchar](200) NULL, [sMessage] [varchar](2000) NULL, [sException] [varchar](4000) NULL, CONSTRAINT [PK_ErrorLog] PRIMARY KEY CLUSTERED ( [nid] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO
接下来是MD5加密
把以下公共方法放在项目中,加密需要使用下面方法
1 /// <summary> 2 /// 32位MD5加密 3 /// </summary> 4 /// <param name="password"></param> 5 /// <returns></returns> 6 public static string MD5Encrypt32(string password) 7 { 8 string cl = password; 9 string pwd = ""; 10 MD5 md5 = MD5.Create(); //实例化一个md5对像 11 // 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择 12 byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl)); 13 // 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得 14 for (int i = 0; i < s.Length; i++) 15 { 16 // 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符 17 pwd = pwd + s[i].ToString("X"); 18 } 19 return pwd; 20 }
注意 这里使用的form表单提交

不管是登录还是注册在方法中使用上面的MD5方法加密一下就可以了,一个简单的MD5加密就已经完成了
浙公网安备 33010602011771号