1、使用EventLog组件读写事件日志

SourceExists方法  确定事件源是否已在本地计算机上注册

DeleteEventSource方法  用于从事件日志中移除应用程序的事件源注册

        private void button2_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
if (eventLog1.Entries.Count > )
{
foreach (System.Diagnostics.EventLogEntry entry
in eventLog1.Entries)
{
listBox1.Items.Add(entry.Message);
}
}
else
{
MessageBox.Show("日志中没有记录.");
}
} private void Frm_Main_Load(object sender, EventArgs e)
{
if (System.Diagnostics.EventLog.SourceExists("ZhyScoure"))//判断是否存在事件源
{
System.Diagnostics.EventLog.DeleteEventSource("ZhyScoure");//删除事件源注册
}
System.Diagnostics.EventLog.//创建日志信息
CreateEventSource("ZhyScoure", "NewLog1");
eventLog1.Log = "NewLog1";//设置日志名称
eventLog1.Source = "ZhyScoure";//事件源名称
this.eventLog1.MachineName = ".";//表示本机
} private void btn_Write_Click(object sender, EventArgs e)
{
if (System.Diagnostics.EventLog.Exists("NewLog1"))//判断日志是否存在
{
if (textBox1.Text != "")//如果文本框为空
{
eventLog1.WriteEntry(textBox1.Text.ToString());//写入日志
MessageBox.Show("日志写成功");//弹出消息对话框
textBox1.Text = "";//清空文本框信息
}
else
{
MessageBox.Show("日志内容不能为空");//弹出消息对话框
}
}
else
{
MessageBox.Show("日志不存在");//弹出消息对话框
}
}

保存Windows系统日志

        private void Frm_Main_Load(object sender, EventArgs e)
{
if (System.Diagnostics.EventLog.SourceExists("ErrEventLog"))//判断是否存在事件源
{
System.Diagnostics.EventLog.DeleteEventSource("ErrEventLog");//删除事件源注册
}
System.Diagnostics.EventLog.//创建日志信息
CreateEventSource("ErrEventLog", "Application");
eventLog2.Log = "Application";//设置日志名称
eventLog2.Source = "ErrEventLog";//事件源名称
this.eventLog1.MachineName = ".";//表示本机
}
private void btn_Find_Click(object sender, EventArgs e)
{
if (eventLog1.Entries.Count > )//判断是否存在系统日志
{
foreach (System.Diagnostics.EventLogEntry//遍历日志信息
entry in eventLog1.Entries)
{
if (entry.EntryType ==//判断是否为错误日志
System.Diagnostics.EventLogEntryType.Error)
{
listBox1.Items.Add(entry.Message);//向控件中添加数据项
eventLog2.WriteEntry(entry.Message,//写入日志信息
System.Diagnostics.EventLogEntryType.Error);
}
}
}
else
{
MessageBox.Show("系统没有错误日志.");//弹出消息对话框
}
}

向本机现有日志中添加条目

        private void Frm_Main_Load(object sender, EventArgs e)
{
if (eventLog1.Entries.Count > )
{
foreach (System.Diagnostics.EventLogEntry//遍历所有日志
entry in eventLog1.Entries)
{
if (comboBox1.Items.Count == )//判断是否为第一个日志
{
comboBox1.Items.Add(//添加日志信息
entry.Source.ToString());
}
else
{
if (!comboBox1.Items.Contains(//判断产生日志信息的应用程序是否重复
entry.Source.ToString()))
{
comboBox1.Items.Add(//添加日志信息
entry.Source.ToString());
}
}
}
}
} private void btn_Add_Click(object sender, EventArgs e)
{
if (comboBox1.SelectedItem == null)//如果没有选择应用程序
{
MessageBox.Show("请选择日志名称");//弹出消息对话框
return;
}
if (textBox1.Text == "")//如果没有添写日志内容
{
MessageBox.Show("请填写日志内容");//弹出消息对话框
textBox1.Focus();//控件得到焦点
return;//退出方法
}
eventLog1.Log = "System";//设置读写日志的名称
eventLog1.Source = comboBox1.//设置日志源名称
SelectedItem.ToString();
eventLog1.MachineName = ".";//设置写入日志的计算机名称
eventLog1.WriteEntry(textBox1.Text);
MessageBox.Show("添加成功");//弹出提示信息
if (eventLog1.Entries.Count > )//如果日志中有内容
{
foreach (System.Diagnostics.EventLogEntry//遍历日志内容
entry in eventLog1.Entries)
{
listView1.Items.Add(entry.Message);//在控件中显示日志内容
}
}
}

EventLog组件的更多相关文章

  1. 使用EventLog组件向本机现有日志中添加条目

    实现效果: 知识运用: EventLog组件的MachineName属性 //获取或设置在其上读取或写入事件的计算机名称 public string MachineName  {get;set; } ...

  2. EventLog组件读写事件日志

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

  3. 使用EventLog组件保存Windows系统日志

    实现效果: 知识运用: EventLog类的CreateEventSource方法 //用于建立一个应用程序  使用指定的Sourc作为向本机上的日志中写入日志项的有效事件源 CreateEventS ...

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

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

  5. 一文了解如何源码编译Rainbond基础组件

    Rainbond 主要由以下三个项目组成,参考官网详细 技术架构 业务端 Rainbond-UI 和 Rainbond-Console 合起来构成了业务层.业务层是前后端分离模式.UI是业务层的前端代 ...

  6. 如何用.NET创建Windows服务

    我们将研究如何创建一个作为Windows服务的应用程序.内容包含什么是Windows服务,如何创建.安装和调试它们.会用到System.ServiceProcess.ServiceBase命名空间的类 ...

  7. 服务器重启后SQL Server Agent由于"The EventLog service has not been started" 启动失败

    案例环境: 操作系统   : Microsoft Windows Server 2003 Standard Edtion SP2 数据库版本 : SQL Server 2005 Standard Ed ...

  8. web 前端常用组件【01】Pagination 分页

    分页组件几乎是一般网站都会涉及到的组件,网上有很多这样的插件,自己挑来跳去选择了这一款. 官方Demo网址:http://mricle.com/JqueryPagination 功能强大,可扩展性比较 ...

  9. 添加无线服务wzcsvc服务,Eventlog服务

    <添加eventlog服务.reg> Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentCont ...

随机推荐

  1. Windows7中Emacs 24 shell使用Gitbash

    今天发现可以在shell中直接打开Gitbash,Gitbash提供了一些有用的Linux风格命令,最关键是我用emacs的时候不用再打开一个Gitbash终端操纵Git了. 在~/.emacs.d/ ...

  2. Android 换肤功能的实现(Apk插件方式)

    一.概述 由于Android 没有提供一套统一的换肤机制,我猜可能是因为国外更注重功能和体验的原因 所以国内如果要做一个漂亮的换肤方案,需要自己去实现. 目前换肤的方法大概有三种方案: (1)把皮肤资 ...

  3. 数据结构与算法分析(2)——表、栈和队列

      抽象数据类型     抽象数据类型(ADT)是一系列操作的集合.诸如表.集合.图和他们的操作一起可以看做是抽象数据类型 表 List 表的实现有两种:数组和链表.数组实现的表在插入和删除操作上的花 ...

  4. a链接中关于this的使用

    a连接点击事件用 this 时,要用 onclick='click(this)',href='javascript:void()' a连接无法使用,要看看是不是自动变成ie7或者更低

  5. 使用CompletionService结合ExecutorService批处理任务

    CompletionService用于提交一组Callable任务,其take方法返回已完成的一个Callable任务对应的Future对象. 如果你向Executor提交了一个批处理任务,并且希望在 ...

  6. dedecms 首页分页功能

    1.需要引入 <script language="javascript" type="text/javascript" src="{dede:g ...

  7. jquery扩展 $.fn

    $.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效. 如扩展$.fn.abc(),即$.fn.abc()是对jquery扩展了一个abc方法,那么后面你的每一个 ...

  8. Extjs3 Combo实现百度搜索查询

    在Extjs中实现Combo手输模糊筛选出下拉框数据.之前一直利用的Combo的keyup来实时的请求数据库进行查询.最近发现了一个更好的方式:只需要引用一个ComboBoxQuery Ext.ns( ...

  9. 使用PHP连接、操纵Memcached的原理和教程

    http://www.crazyant.net/1014.html Memcahced开源分布式内存对象缓存系统通过减少数据库的负担,从而能够加速你的web应用.在本文中我将解释怎样实现一个基于Mem ...

  10. 处理不等高TableViewCell

    课题一:如何计算Cell高度 方案一:直接法(面向对象) 想知道妹纸爱你有多深?直接去问妹纸本人吧! 嗯!Cell也是一样的,想知道cell到底有多高?直接问Cell本人就好了.直接法,就是把数据布局 ...