ldj/myLog/RequestLog.cs

157 lines
4.4 KiB
C#
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)
{
}
}
}
}