157 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			157 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System; | |||
|  | using System.Data; | |||
|  | using System.Text; | |||
|  | using System.Web; | |||
|  | 
 | |||
|  | 
 | |||
|  | namespace DeiNiu | |||
|  | { | |||
|  |    public  class RequestLog | |||
|  |     { | |||
|  |         private Log _obj; | |||
|  | 
 | |||
|  |         public RequestLog() | |||
|  |         { | |||
|  |             _obj = new Log(); | |||
|  |              basicLogInfo(); | |||
|  | 
 | |||
|  |              | |||
|  |             | |||
|  |         } | |||
|  | 
 | |||
|  |          StringBuilder  getClientBrowserInfo() | |||
|  |         { | |||
|  |             StringBuilder strLabel = new StringBuilder(); | |||
|  |             HttpBrowserCapabilities bc = HttpContext.Current.Request.Browser; | |||
|  |             strLabel.Append("浏览器的分辨率为:"); | |||
|  |             strLabel.Append(HttpContext.Current.Request.Form["WidthPixel"]); | |||
|  |             | |||
|  |             strLabel.Append(HttpContext.Current.Request.Form["HeightPixel"]); | |||
|  |              | |||
|  |             strLabel.Append("浏览器基本信息:<br>"); | |||
|  |             strLabel.Append("Type = " + bc.Type + "<br>"); | |||
|  |             strLabel.Append("Name = " + bc.Browser + "<br>"); | |||
|  |             strLabel.Append("Version = " + bc.Version + "<br>"); | |||
|  |              | |||
|  |             strLabel.Append("Platform = " + bc.Platform + "<br>"); | |||
|  |              | |||
|  |             strLabel.Append("UserAgent = " + HttpContext.Current.Request.UserAgent + "<br>"); | |||
|  |             strLabel.Append("UserLanguages = " + HttpContext.Current.Request.UserLanguages[0].ToString() + "<br>"); | |||
|  |         | |||
|  |             | |||
|  |               | |||
|  |             return strLabel; | |||
|  |         } | |||
|  |         | |||
|  | 
 | |||
|  |         public   string getIP( ) | |||
|  |         { | |||
|  |             string userIP =""; | |||
|  |            | |||
|  |             // 如果使用代理,获取真实IP    | |||
|  |             try | |||
|  |             {   | |||
|  |                 HttpRequest Request = HttpContext.Current.Request; | |||
|  |                userIP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != "" ? Request.ServerVariables["REMOTE_ADDR"] : Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; | |||
|  |              | |||
|  |             if (string.IsNullOrEmpty(userIP)) | |||
|  |                 userIP =  Request.UserHostAddress; | |||
|  |                | |||
|  |             }catch   | |||
|  |             { | |||
|  |                  | |||
|  |             } | |||
|  |              return userIP; | |||
|  |         } | |||
|  | 
 | |||
|  |        public  void RecordLog(IDbCommand cmd) | |||
|  |         { | |||
|  |             | |||
|  |              | |||
|  |            _obj.log_sql = cmd.CommandText; | |||
|  |            for (int i = 0; i < cmd.Parameters.Count;i++ ) | |||
|  |            { | |||
|  |                _obj.log_parameters += "<Split>" + ((System.Data.SqlClient.SqlParameter)(cmd.Parameters[i])).Value ; | |||
|  |            } | |||
|  |            _obj.Add(); | |||
|  |         } | |||
|  | 
 | |||
|  |         public void RequestPageLog() | |||
|  |         { | |||
|  |             _obj.Add(); | |||
|  |         } | |||
|  |         public void LoginLog(string account, string logStatus) | |||
|  |         { | |||
|  |             _obj.log_account = account; | |||
|  |             _obj.log_method = logStatus; | |||
|  |             _obj.log_browseinfo = getClientBrowserInfo().ToString(); | |||
|  |             _obj.Add(); | |||
|  |         } | |||
|  | 
 | |||
|  |         public void LogoutLog(int empid) | |||
|  |         { | |||
|  |             | |||
|  |            _obj.logOut(empid); | |||
|  |               | |||
|  |         } | |||
|  |        public void LogoutLog(string userId) | |||
|  |        { | |||
|  |            try{ _obj.logTimeOut(int.Parse(userId));} | |||
|  |            catch(Exception) | |||
|  |            { | |||
|  |                 | |||
|  |            } | |||
|  |            | |||
|  |             | |||
|  | 
 | |||
|  |        } | |||
|  |          | |||
|  | 
 | |||
|  | 
 | |||
|  |         public void RecordExceptionLog(Exception er) | |||
|  |         { | |||
|  |             StringBuilder error = new StringBuilder(); | |||
|  |             //error.Append("Source is <br/> " + er.Source); | |||
|  |            // error.Append("StackTrace is <br/>" + er.StackTrace);   | |||
|  |             if (er.InnerException != null) | |||
|  |             error.Append("InnerException is <br/>" + er.InnerException); | |||
|  |             else | |||
|  |             { | |||
|  |                 error.Append(er.ToString()); | |||
|  |             } | |||
|  |             _obj.log_exception = error.ToString(); | |||
|  |            _obj.Add(); | |||
|  |            | |||
|  |             | |||
|  | 
 | |||
|  |             | |||
|  |         } | |||
|  | 
 | |||
|  |         void basicLogInfo() | |||
|  |         {     | |||
|  |             _obj.log_clientip = getIP(); | |||
|  |             try | |||
|  |             { | |||
|  |                 _obj.log_empid = HttpContext.Current.Session["CurrentUserId"] == null | |||
|  |                                 ? -1 | |||
|  |                                 : Convert.ToInt32(HttpContext.Current.Session["CurrentUserId"].ToString()); | |||
|  |            _obj.log_page = HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath + HttpContext.Current.Request.Url.Query; | |||
|  |            _obj.log_sessionid = HttpContext.Current.Session.SessionID; | |||
|  |            _obj.log_account = HttpContext.Current.Session["CurrentUserAccount"] == null | |||
|  |                                 ? string.Empty | |||
|  |                                 : HttpContext.Current.Session["CurrentUserAccount"].ToString(); | |||
|  |          | |||
|  | 
 | |||
|  |             } | |||
|  |             catch (Exception er) | |||
|  |             { | |||
|  | 
 | |||
|  |             } | |||
|  |       | |||
|  |        | |||
|  |             | |||
|  |         } | |||
|  | 
 | |||
|  |     } | |||
|  | } |