EventLog 系统事件日志控件

EventLog 系统事件日志控件

EventLog 用来和 Windows 系统日志进行交互操作。

设置日志源并写入日志

private void button9_Click(object sender, EventArgs e)
{
    this.eventLog1.WriteEntry("sdfsdfsdfsdfdsfdsfdsf");
}Code language: JavaScript (javascript)

运行时可能遇到以下异常:

System.Security.SecurityException: "未找到源,不过,未能搜索部分或所有事件日志。
若要创建源,您需要用于读取所有事件日志的权限以确保新的源名称是唯一的。
不可访问的日志: Security, State。"Code language: CSS (css)

原因是写系统日志需要管理员权限。

解决方案

以管理员身份运行 Visual Studio,这样调试时程序就具备写入系统日志的权限。

使用静态方法(推荐)

直接使用 EventLog 的静态方法,无需在设计器中拖拽控件:

private void button9_Click(object sender, EventArgs e)
{
    // 事件源注册到事件日志,日志不存在时自动创建
    EventLog.CreateEventSource("abc", "自定义事件");

    // 写入事件日志
    EventLog.WriteEntry("abc", "Hello World!", EventLogEntryType.Warning);
}Code language: JavaScript (javascript)
参数说明
第一个参数事件源名称(source)
第二个参数日志消息内容
第三个参数日志类型(Information、Warning、Error、SuccessAudit、FailureAudit)

常用属性

属性说明
Source事件源名称
Log日志名称(Application、System 或自定义名称)
MachineName计算机名称,默认本地

常用方法

方法说明
CreateEventSource(string source, string log)创建事件源并注册到指定日志
WriteEntry(string source, string message)向指定源写入一条日志
WriteEntry(string source, string message, EventLogEntryType type)写入指定类型的日志
DeleteEventSource(string source)删除事件源
Exists(string log)判断指定日志是否存在

查看日志

写入后可以在 事件查看器​ 中查看:

  1. 打开 eventvwr.msc
  2. 展开 Windows 日志​ 或 应用程序和服务日志
  3. 找到对应的日志名称,查看写入的条目

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注