這篇文章主要介紹了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#程序設計有所幫助。
新聞熱點
疑難解答