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

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

本文实例讲述了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#程序设计有所帮助。

标签:C#,自定义,windows,日志
0
投稿

猜你喜欢

  • Java Spring的使用注解开发详解

    2023-04-27 03:00:40
  • IDEA Error:java:无效的源发行版:13的解决过程

    2023-11-25 10:07:19
  • 浅谈Android开发中项目的文件结构及规范化部署建议

    2022-05-13 12:47:37
  • Android布局之绝对布局AbsoluteLayout详解

    2023-07-26 07:44:27
  • android 类似微信的摇一摇功能实现思路及代码

    2022-09-16 03:45:36
  • Android自定义Banner轮播效果

    2023-08-05 23:34:06
  • 快速了解Java中NIO核心组件

    2023-01-01 12:21:13
  • 一文让你搞懂如何手写一个redis分布式锁

    2023-11-29 02:46:30
  • 获取wince mac地址与IP地址解决方案

    2022-01-21 02:04:19
  • C#启动进程的几种常用方法

    2023-06-18 04:13:48
  • java实现简单的webservice方式

    2023-11-25 03:59:58
  • 两路归并的数组与链表的实现方法

    2021-10-28 04:32:15
  • Java常用内置注解用法分析

    2023-11-24 04:53:46
  • C#获取U盘序列号的方法

    2023-09-15 02:09:54
  • java获取文件的inode标识符的方法

    2021-06-19 15:10:49
  • 深入分析C# Task

    2022-10-24 12:39:00
  • C# Socket网络编程实例

    2023-03-18 05:09:28
  • Android自定义gridView仿头条频道拖动管理功能

    2022-09-08 00:11:41
  • C#使用DevExpress中的XtraCharts控件实现图表

    2022-12-21 10:14:10
  • Java中包装类和Arrays类的详细介绍

    2023-12-03 22:04:13
  • asp之家 软件编程 m.aspxhome.com