C#操作windows事件日志项
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C#操作windows事件⽇志项
1///<summary>
2///指定事件⽇志项的事件类型
3///</summary>
4public 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 }
指定事件⽇志项的事件类型
1public static class WebUtil
2 {
3///<summary>
4///写⽇志信息
5///</summary>
6///<param name="Message">⽇志信息</param>
7public static void WriteLog(string Message, EventLogLevel logLevel = rmation)
8 {
9string sourceName = "DemoEventLog";//Application-应⽤程序⽇志
10 WriteCustomLog(sourceName, Message, logLevel);
11 }
12///<summary>
13///写异常⽇志
14///</summary>
15///<param name="exp">异常信息</param>
16public static void WriteLog(Exception exp, EventLogLevel logLevel = EventLogLevel.Error)
17 {
18string filepath = string.Empty;
19try
20 {
21 filepath = HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath;
22 }
23catch (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);
28string sourceName = "DemoEventLog";//Application-应⽤程序⽇志
29 WriteCustomLog(sourceName, Message, logLevel);
30 }
31///<summary>
32///写异常⽇志
33///设置:因为系统⽇志的操作是有权限控制的,所以我们还要把对系统⽇志操作的权限赋给⽤户,
34///⽅法如下:“开始->运⾏”,输⼊命令,“regedt32”,找到“System->CurrentControlSet->Services->Eventlog”,
35///选择“安全->权限->添加”,然后找到本机的“AspNet”⽤户,加进来并且给读取权限就好了,
36///加进来后⽬录中会多⼀个“aspnet_wp account”
37///系统出错后,会⾃动将出错信息记录到系统⽇志中,你可以在“开始->程序->管理⼯具->事件查看器”中发现⼀个新的项⽬“TownLog”,这便是记录出错信息的。
38///</summary>
39///<param name="message">⽇志信息</param>
40private static void WriteCustomLog(string sourceName, string message, EventLogLevel logLevel = rmation)
41 {
42try
43 {
44string logName = sourceName + "Log";
45if (!(EventLog.SourceExists(sourceName)))
46 {
47 EventLog.CreateEventSource(sourceName, logName);
48 }
49
50using (EventLog eventLog = new EventLog(logName))
52 eventLog.Source = sourceName;
53 eventLog.WriteEntry(message, (EventLogEntryType)logLevel);
54 }
55 }
56catch (Exception ex)
57 {
58 WriteApplicationLog(ex.ToString());
59 }
60 }
61///<summary>
62///记录应⽤程序⽇志
63///</summary>
64///<param name="message"></param>
65public static void WriteApplicationLog(string message)
66 {
67try
68 {
69string sourceName = "Application";
70
71if (!(EventLog.SourceExists(sourceName)))
72 {
73 EventLog.CreateEventSource(sourceName, sourceName);
74 }
75
76using (EventLog eventLog = new EventLog(sourceName))
77 {
78 eventLog.Source = sourceName;
79 eventLog.WriteEntry(message, EventLogEntryType.Error);
80 }
81 }
82catch (Exception ex)
83 {
84throw ex;
85 }
86 }
87///<summary>
88///获取客户端IP地址(⽆视代理)
89///</summary>
90///<returns>若失败则返回回送地址</returns>
91public static string GetClientIP()
92 {
93string userHostAddress = erHostAddress;
94if (string.IsNullOrEmpty(userHostAddress))
95 {
96 userHostAddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
97 }
98//最后判断获取是否成功,并检查IP地址的格式(检查其格式⾮常重要)
99if (!string.IsNullOrEmpty(userHostAddress) && IsIP(userHostAddress))
100 {
101return userHostAddress;
102 }
103return"127.0.0.1";
104 }
105
106///<summary>
107///检查IP地址格式
108///</summary>
109///<param name="ip"></param>
110///<returns></returns>
111public static bool IsIP(string ip)
112 {
113return 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();
136// else
137// {
138// ip = ctrl.HttpContext.Request.ServerVariables["REMOTE_ADDR"].ToString(); 139// }
140// return ip;
141//}
142 }
WebUtil。