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


猜你喜欢
- 目录1、设Tree为已定义的类名,下列语句能正确创建 Tree 对象的是 。2、区分类中重载方法的依据是( )。3、以下代码执行后输出结果为
- 自从接触javascript以来,对this参数的理解一直是模棱两可。虽有过深入去理解,但却也总感觉是那种浮于表面,没有完全理清头绪。但对于
- 前言之所以会有这篇文章,是因为公司的开发环境比较老,寻找一些jar包的时候总是会纠结对应的编译版本,感觉很麻烦,所以写了一个工具类用于读取c
- 前言解放双手!推荐一款阿里开源的低代码工具,YYDS!之前分享过一些低代码相关的文章,发现大家还是比较感兴趣的。之前在我印象中低代码就是通过
- 1.定义指向非法的内存地址指针叫作野指针(Wild Pointer),也叫悬挂指针(Dangling Pointer),意为无法正常使用的指
- 使用场景EntityListeners在jpa中使用,如果你是mybatis是不可以用的它的意义对实体属性变化的跟踪,它提供了保存前,保存后
- 前言现在大部分App底部都有一个菜单,实现这个功能也有好多办法:- TabHost+Fragment - RadioGroup+Fragme
- 1. Spring Boot 入门 Spring Boot是Spring社区较新的一个项目。该项目的目的是帮助开发者更容易的创建基于Spri
- 之前我们在做消息回复的时候我们对回复的消息简单做了分类,前面也有讲述如何回复【普通消息类型消息】,这里将讲述多媒体消息的回复方法,【多媒体消
- 目录源码实现基本流程ThreadLoalMap数据结构Hash冲突及解决ThreadLocal内存泄露内存引用链路引用类型为什么使用弱引用而
- indexof方法:注解:indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回-1
- JDK8中有双冒号的用法,就是把方法当做参数传到stream内部,使stream的每个元素都传入到该方法里面执行一下。代码其实很简单:以前的
- 在C#中DateTime是一个包含日期、时间的类型,此类型通过ToString()转换为字符串时,可根据传入给Tostring()的参数转换
- 实践过程效果代码public partial class Form1 : Form{ public Form1()
- 本章,会对synchronized关键字进行介绍。涉及到的内容包括:1. synchronized原理2. synchronized基本规则
- jdk8之前 一、java.lang.Systemlong times = System.currentTimeMillis();
- 前言大家都知道,不少仪器工作站可xls文件和2007+的xl以将数据导出为Excel文件,包括97-2003版本的sx文件。采集Excel文
- 本文实例讲述了C#实现查杀本地与远程进程的方法。分享给大家供大家参考。具体实现方法如下:using System;using System.
- 异常与错误:异常:在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知
- 一 前言在elasticsearch\config目录下,有三个核心的配置文件:elasticsearch.yml,es相关的配置。jvm.