1 /// <summary> 2 /// 指定事件日志项的事件类型 3 /// </summary> 4 public enum EventLogLevel 5 { 6 /// <summary> 7 /// 错误事件。它指示用户应该知道的严重问题(通常是功能或数据的丢失)。 8 /// </summary> 9 Error = 1, 10 /// <summary> 11 /// 警告事件。它指示并不立即具有重要性的问题,但此问题可能表示将来会导致问题的条件。 12 /// </summary> 13 Warning = 2, 14 /// <summary> 15 /// 信息事件。它指示重要、成功的操作。 16 /// </summary> 17 Information = 4, 18 /// <summary> 19 /// 成功审核事件。它指示当审核访问尝试成功(例如成功登录)时发生的安全事件。 20 /// </summary> 21 SuccessAudit = 8, 22 /// <summary> 23 /// 失败审核事件。它指示当审核访问尝试失败(例如打开文件的尝试失败)时发生的安全事件。 24 /// </summary> 25 FailureAudit = 16, 26 }
指定事件日志项的事件类型
1 public static class WebUtil 2 { 3 /// <summary> 4 /// 写日志信息 5 /// </summary> 6 /// <param name="Message">日志信息</param> 7 public static void WriteLog(string Message, EventLogLevel logLevel = EventLogLevel.Information) 8 { 9 string sourceName = "DemoEventLog";//Application-应用程序日志 10 WriteCustomLog(sourceName, Message, logLevel); 11 } 12 /// <summary> 13 /// 写异常日志 14 /// </summary> 15 /// <param name="exp">异常信息</param> 16 public static void WriteLog(Exception exp, EventLogLevel logLevel = EventLogLevel.Error) 17 { 18 string filepath = string.Empty; 19 try 20 { 21 filepath = HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath; 22 } 23 catch (Exception) 24 { 25 26 } 27 String Message = string.Format("\n\nURL:\n {0}\n\nMESSAGE:\n {1}\n\nSTACK TRACE:\n {2}", filepath, exp.Message, exp.StackTrace); 28 string sourceName = "DemoEventLog";//Application-应用程序日志 29 WriteCustomLog(sourceName, Message, logLevel); 30 } 31 /// <summary> 32 /// 写异常日志 33 /// 设置:因为系统日志的操作是有权限控制的,所以我们还要把对系统日志操作的权限赋给asp.net用户, 34 /// 方法如下:“开始->运行”,输入命令,“regedt32”,找到“System->CurrentControlSet->Services->Eventlog”, 35 /// 选择“安全->权限->添加”,然后找到本机的“AspNet”用户,加进来并且给读取权限就好了, 36 /// 加进来后目录中会多一个“aspnet_wp account” 37 /// 系统出错后,会自动将出错信息记录到系统日志中,你可以在“开始->程序->管理工具->事件查看器”中发现一个新的项目“TownLog”,这便是记录出错信息的。 38 /// </summary> 39 /// <param name="message">日志信息</param> 40 private static void WriteCustomLog(string sourceName, string message, EventLogLevel logLevel = EventLogLevel.Information) 41 { 42 try 43 { 44 string logName = sourceName + "Log"; 45 if (!(EventLog.SourceExists(sourceName))) 46 { 47 EventLog.CreateEventSource(sourceName, logName); 48 } 49 50 using (EventLog eventLog = new EventLog(logName)) 51 { 52 eventLog.Source = sourceName; 53 eventLog.WriteEntry(message, (EventLogEntryType)logLevel); 54 } 55 } 56 catch (Exception ex) 57 { 58 WriteApplicationLog(ex.ToString()); 59 } 60 } 61 /// <summary> 62 /// 记录应用程序日志 63 /// </summary> 64 /// <param name="message"></param> 65 public static void WriteApplicationLog(string message) 66 { 67 try 68 { 69 string sourceName = "Application"; 70 71 if (!(EventLog.SourceExists(sourceName))) 72 { 73 EventLog.CreateEventSource(sourceName, sourceName); 74 } 75 76 using (EventLog eventLog = new EventLog(sourceName)) 77 { 78 eventLog.Source = sourceName; 79 eventLog.WriteEntry(message, EventLogEntryType.Error); 80 } 81 } 82 catch (Exception ex) 83 { 84 throw ex; 85 } 86 } 87 /// <summary> 88 /// 获取客户端IP地址(无视代理) 89 /// </summary> 90 /// <returns>若失败则返回回送地址</returns> 91 public static string GetClientIP() 92 { 93 string userHostAddress = HttpContext.Current.Request.UserHostAddress; 94 if (string.IsNullOrEmpty(userHostAddress)) 95 { 96 userHostAddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; 97 } 98 //最后判断获取是否成功,并检查IP地址的格式(检查其格式非常重要) 99 if (!string.IsNullOrEmpty(userHostAddress) && IsIP(userHostAddress)) 100 { 101 return userHostAddress; 102 } 103 return "127.0.0.1"; 104 } 105 106 /// <summary> 107 /// 检查IP地址格式 108 /// </summary> 109 /// <param name="ip"></param> 110 /// <returns></returns> 111 public static bool IsIP(string ip) 112 { 113 return System.Text.RegularExpressions.Regex.IsMatch(ip, @"^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$"); 114 } 115 //public static string GetClientIP(System.Web.UI.Page page) 116 //{ 117 // string ipAddress = ""; 118 // if (page.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] == null) 119 // { 120 // ipAddress = page.Request.ServerVariables["Remote_Addr"]; 121 // } 122 // else 123 // { 124 // ipAddress = page.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; 125 // } 126 // return ipAddress; 127 //} 128 129 //public static string GetIP(this Controller ctrl) 130 //{ 131 // string ip; 132 // if (ctrl.HttpContext.Request.ServerVariables["HTTP_VIA"] != null) 133 // { 134 // ip = ctrl.HttpContext.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString(); 135 // } 136 // else 137 // { 138 // ip = ctrl.HttpContext.Request.ServerVariables["REMOTE_ADDR"].ToString(); 139 // } 140 // return ip; 141 //} 142 }
WebUtil
时间: 2024-10-07 10:23:33