首页 > 编程 > C# > 正文

C#实现自定义windows系统日志的方法

2019-10-29 21:39:12
字体:
来源:转载
供稿:网友

这篇文章主要介绍了C#实现自定义windows系统日志的方法,涉及C#针对windows系统日志的创建、读写及删除技巧,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了C#实现自定义windows系统日志的方法。分享给大家供大家参考。具体实现方法如下:

 

 
  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Linq; 
  4. using System.Text; 
  5. using System.Diagnostics; 
  6. namespace ConsoleApp 
  7. /// <summary> 
  8. /// 系统日志 
  9. /// </summary> 
  10. public class PackSystemEventLog 
  11. /// <summary> 
  12. /// 错误信息 
  13. /// </summary> 
  14. private static string ErrorInfo { get; set; } 
  15. /// <summary> 
  16. /// 创建系统事件日志分类 
  17. /// </summary> 
  18. /// <param name="eventSourceName">注册事件源(比如说这个日志来源于某一个应用程序)</param> 
  19. /// <param name="logName">日志名称(事件列表显示的名称)</param> 
  20. /// <returns></returns> 
  21. public static bool CreateSystemEventLogCategory(string eventSourceName, string logName) 
  22. bool createResult = false
  23. try 
  24. if (!EventLog.SourceExists(eventSourceName)) 
  25. EventLog.CreateEventSource(eventSourceName, logName); 
  26. createResult = true
  27. catch (Exception ex) 
  28. createResult = false
  29. ErrorInfo = ex.Message; 
  30. return createResult; 
  31. /// <summary> 
  32. /// 删除系统事件日志分类 
  33. /// </summary> 
  34. /// <param name="eventSource">EventName事件源</param> 
  35. /// <returns></returns> 
  36. public static bool RemoveSystemEventSourceCategory(string eventSource) 
  37. bool createResult = false
  38. try 
  39. if (EventLog.SourceExists(eventSource)) 
  40. EventLog.DeleteEventSource(eventSource, "."); 
  41. createResult = true
  42. catch (Exception ex) 
  43. createResult = false
  44. ErrorInfo = ex.Message; 
  45. return createResult; 
  46. /// <summary> 
  47. /// 向系统日志中写入日志 
  48. /// </summary> 
  49. /// <param name="eventSource">事件源</param> 
  50. /// <param name="msg">写入日志信息</param> 
  51. /// <param name="type">日志文本分类(警告、信息、错误)</param> 
  52. /// <returns></returns> 
  53. public static bool WriteSystemEventLog(string eventSource, string msg, EventLogEntryType type) 
  54. bool writeResult = false
  55. try 
  56. if (!EventLog.SourceExists(eventSource)) 
  57. writeResult = false
  58. ErrorInfo = "日志分类不存在!";  
  59. else 
  60. EventLog.WriteEntry(eventSource, msg, type); 
  61. writeResult = true
  62. catch (Exception ex) 
  63. writeResult = false
  64. ErrorInfo = ex.Message; 
  65. return writeResult; 
  66. /// <summary> 
  67. /// 删除事件源中logName(好像删除了所有的该分类的日志) 
  68. /// </summary> 
  69. /// <param name="eventSource"></param> 
  70. /// <param name="logName"></param> 
  71. /// <returns></returns> 
  72. public static bool RemoveSystemEventLog(string eventSource, string logName) 
  73. bool removeResult = false
  74. try 
  75. if (!EventLog.SourceExists(eventSource)) 
  76. removeResult = false
  77. ErrorInfo = "日志分类不存在!"
  78. else 
  79. EventLog.Delete(logName); 
  80. removeResult = true
  81. catch (Exception ex) 
  82. removeResult = false
  83. ErrorInfo = ex.Message; 
  84. return removeResult; 
  85. /// <summary> 
  86. /// 获取错误信息 
  87. /// </summary> 
  88. /// <returns></returns> 
  89. public static string GetErrorMessage() 
  90. return ErrorInfo; 

希望本文所述对大家的C#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表