软件编程
位置:首页>> 软件编程>> C#编程>> C#实现自定义windows系统日志的方法

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

作者:我心依旧  发布时间:2021-12-17 13:02:31 

标签: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#程序设计有所帮助。

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com