这篇文章主要介绍了C#实现自定义windows系统日志的方法,涉及C#针对windows系统日志的创建、读写及删除技巧,非常具有实用价值,需要的朋友可以参考下
本文实例讲述了C#实现自定义windows系统日志的方法。分享给大家供大家参考。具体实现方法如下:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Diagnostics;
- namespace ConsoleApp
- {
- /// <summary>
- /// 系统日志
- /// </summary>
- public class PackSystemEventLog
- {
- /// <summary>
- /// 错误信息
- /// </summary>
- private static string ErrorInfo { get; set; }
- /// <summary>
- /// 创建系统事件日志分类
- /// </summary>
- /// <param name="eventSourceName">注册事件源(比如说这个日志来源于某一个应用程序)</param>
- /// <param name="logName">日志名称(事件列表显示的名称)</param>
- /// <returns></returns>
- public static bool CreateSystemEventLogCategory(string eventSourceName, string logName)
- {
- bool createResult = false;
- try
- {
- if (!EventLog.SourceExists(eventSourceName))
- {
- EventLog.CreateEventSource(eventSourceName, logName);
- }
- createResult = true;
- }
- catch (Exception ex)
- {
- createResult = false;
- ErrorInfo = ex.Message;
- }
- return createResult;
- }
- /// <summary>
- /// 删除系统事件日志分类
- /// </summary>
- /// <param name="eventSource">EventName事件源</param>
- /// <returns></returns>
- public static bool RemoveSystemEventSourceCategory(string eventSource)
- {
- bool createResult = false;
- try
- {
- if (EventLog.SourceExists(eventSource))
- {
- EventLog.DeleteEventSource(eventSource, ".");
- }
- createResult = true;
- }
- catch (Exception ex)
- {
- createResult = false;
- ErrorInfo = ex.Message;
- }
- return createResult;
- }
- /// <summary>
- /// 向系统日志中写入日志
- /// </summary>
- /// <param name="eventSource">事件源</param>
- /// <param name="msg">写入日志信息</param>
- /// <param name="type">日志文本分类(警告、信息、错误)</param>
- /// <returns></returns>
- public static bool WriteSystemEventLog(string eventSource, string msg, EventLogEntryType type)
- {
- bool writeResult = false;
- try
- {
- if (!EventLog.SourceExists(eventSource))
- {
- writeResult = false;
- ErrorInfo = "日志分类不存在!";
- }
- else
- {
- EventLog.WriteEntry(eventSource, msg, type);
- writeResult = true;
- }
- }
- catch (Exception ex)
- {
- writeResult = false;
- ErrorInfo = ex.Message;
- }
- return writeResult;
- }
- /// <summary>
- /// 删除事件源中logName(好像删除了所有的该分类的日志)
- /// </summary>
- /// <param name="eventSource"></param>
- /// <param name="logName"></param>
- /// <returns></returns>
- public static bool RemoveSystemEventLog(string eventSource, string logName)
- {
- bool removeResult = false;
- try
- {
- if (!EventLog.SourceExists(eventSource))
- {
- removeResult = false;
- ErrorInfo = "日志分类不存在!";
- }
- else
- {
- EventLog.Delete(logName);
- removeResult = true;
- }
- }
- catch (Exception ex)
- {
- removeResult = false;
- ErrorInfo = ex.Message;
- }
- return removeResult;
- }
- /// <summary>
- /// 获取错误信息
- /// </summary>
- /// <returns></returns>
- public static string GetErrorMessage()
- {
- return ErrorInfo;
- }
- }
- }
希望本文所述对大家的C#程序设计有所帮助。
新闻热点
疑难解答