选中”我的电脑”,在其右键菜单中选择“管理”,在打开的对话框中包括了如下图所示的“日志”信息:

选中其中的某一条日志,可以看到如下的详细信息:

我们应该如何通过写代码的方式向其中添加“日志”呢?

在操作之前,先明确几个概念:

1:事件日志名(logName):“事件查看器”中的每一项,如“应用程序”、“Internet Explorer”、“安全性”和“系统”都是日志(严格地说是日志的显示名字)

2:事件源:列表中的“来源”,创建时和事件日志相关联;

3:事件类型:包括“信息”、“错误”等;

下面介绍事件日志的基本操作:

1:创建日志:我没找到直接创建日志的方法,日志应该都是通过下面的创建事件源来间接创建;

2:创建事件源:静态方法EventLog.CreateEventSource(string sourceName, string LogName); //参数分别表示事件源名和日志名

功能说明:在某个事件日志中创建事件源,如果事件日志不存在,则自动创建;

3:删除日志:静态方法EventLog.Delete(string logName);

4:删除事件源:静态方法EventLog.DeleteEventSource(string sourceName);

5:判断日志是否存在:静态方法EventLog.Exists(string logName);

6:判断事件源是否存在:静态方法EventLog. SourceExists (string sourceName);

7:写日志:使用EventLog类的实例调用方法WriteEntry(string logDesc, EventLogEntryType.Information); //或者EventLogEntryType.Error

封装的方法:

public void WriteLog(string logName, string SourceName, string LogText, EventLogEntryType type)

{

// Create an EventLog instance and assign its source.

EventLog el = new EventLog();

try

{

// Create the source, if it does not already exist.

if (!EventLog.SourceExists(SourceName))

{

if (EventLog.Exists(logName))

{

el.Log = logName;

}

else

{

EventLog.CreateEventSource(SourceName, logName);

}

}

el.Source = SourceName;

el.WriteEntry(LogText, type);

}

catch (Exception ex)

{

el.WriteEntry(ex.Message, EventLogEntryType.Error);

}

}

调用上述方法:this.WriteLog("测试日志", " testSource", " hello log ...", EventLogEntryType.Information);

执行完成之后:

在注册表中也生成了相应的文件夹:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog

双击右侧列表中的Sources(事件源):

日志文件默认存放路径:C:\WINDOWS\system32\config

EventLog实现事件日志操作的更多相关文章

  1. 控制台——EventLog实现事件日志操作

    我们应该如何通过写代码的方式向其中添加“日志”呢? 在操作之前,先明确几个概念: 1:事件日志名(logName):“事件查看器”中的每一项,如“应用程序”.“Internet Explorer”.“ ...

  2. .NET 操作 EventLog(Windows事件日志监控)(转载)

    操作Windows日志:EventLog 如果要在.NET Core控制台项目中使用EventLog(Windows事件日志监控),首先需要下载Nuget包: System.Diagnostics.E ...

  3. .NET拾忆:EventLog(Windows事件日志监控)

    操作Windows日志:EventLog 1:事件日志名(logName):“事件查看器”中的每一项,如“应用程序”.“Internet Explorer”.“安全性”和“系统”都是日志(严格地说是日 ...

  4. C#操作windows事件日志项

    /// <summary> /// 指定事件日志项的事件类型 /// </summary> public enum EventLogLevel { /// <summar ...

  5. 使用EventLog类写Windows事件日志

    在程序中经常需要将指定的信息(包括异常信息和正常处理信息)写到日志中.在C#3.0中可以使用EventLog类将各种信息直接写入Windows日志.EventLog类在System.Diagnosti ...

  6. 关于syslog日志功能详解 事件日志分析、EventLog Analyzer

    关于syslog日志功能详解 事件日志分析.EventLog Analyzer 一.日志管理 保障网络安全 Windows系统日志分析 Syslog日志分析 应用程序日志分析 Windows终端服务器 ...

  7. syslog系统日志、事件日志分析、EventLog Analyzer

    syslog系统日志.事件日志分析.EventLog Analyzer Eventlog Analyzer是用来分析和审计系统及事件日志的管理软件,能够对全网范围内的主机.服务器.网络设备.数据库以及 ...

  8. EventLog组件读写事件日志

    使用.Net中的EventLog控件使您可以访问或自定义Windows 事件日志,事件日志记录关于重要的软件或硬件事件的信息.通过 EventLog,可以读取现有日志,向日志中写入项,创建或删除事件源 ...

  9. 使用EventLog组件读写事件日志

    实现效果: 知识运用: Eventlog类的SourceExists方法 //确定指定的事件源是否已在本地计算机注册 public static bool  SourceExists(string s ...

随机推荐

  1. VS2013 右键监视,未能计算表达式的值

    工具>选项>调试>常规:将红框中的勾上,重新运行就可以了. https://weblog.west-wind.com/posts/2013/Nov/21/Visual-Studio- ...

  2. Mysql 冷备份批处理

    @Rem Generate today date @echo wscript.echo dateadd("d",0,date)>GetOldDate.vbs @for /f ...

  3. 元素exist/present/visible(vanish)/enable的区别

    一.判断元素exist/present/visible(vanish)/enable的区别: 1.首先,从selenium代码上来区别: 1)exist/present表示元素个数是否大于0   Li ...

  4. C# Generic(转载)

    型(generic)是C#语言2.0和通用语言运行时(CLR)的一个新特性.泛型为.NET框架引入了类型参数(type parameters)的概念.类型参数使得设计类和方法时,不必确定一个或多个具体 ...

  5. HDU 4763 (KMP算法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4763 题目大意:给定一串字符,从中找出符合“EAEBE”格式的E的最大字符数.AB可以是任意数量的任意 ...

  6. [leetcode]352. Data Stream as Disjoint Intervals

    数据流合并成区间,每次新来一个数,表示成一个区间,然后在已经保存的区间中进行二分查找,最后结果有3种,插入头部,尾部,中间,插入头部,不管插入哪里,都判断一下左边和右边是否能和当前的数字接起来,我这样 ...

  7. JDK1.8 HashMap中put源码分析

    一.存储结构      在JDK1.8之前,HashMap采用桶+链表实现,本质就是采用数组+单向链表组合型的数据结构.它之所以有相当快的查询速度主要是因为它是通过计算散列码来决定存储的位置.Hash ...

  8. debian 学习记录-4 -关于linux -2

    来源:<Debian标准教程>王旭 著 Slackware.Debian.RedHat.SuSE 这4种发布版是当今大部分发布版的前去,虽然SuSE衍生自Slackware,但由于其技术变 ...

  9. 不要停留在表面,MVC 3 我们要深入一些

    其实在MVC 中只存在三大组件,Model.View.Controller,其中Model用来作为业务逻辑处理,Controller负责的是Model和View的交互,View负责页面显示. 这是非常 ...

  10. UIExtendedEdge

    在IOS7以后 ViewController 开始使用全屏布局的,而且是默认的行为通常涉及到布局.就离不开这个属性 edgesForExtendedLayout,它是一个类型为UIExtendedEd ...