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) | 判断指定日志是否存在 |
查看日志
写入后可以在 事件查看器 中查看:
- 打开
eventvwr.msc - 展开 Windows 日志 或 应用程序和服务日志
- 找到对应的日志名称,查看写入的条目
Previous: ErrorProvider 错误提示控件
Next: 下一篇文章