您的位置:首页 > 编程语言 > C#

使用 C# .NET 写入事件日志

2009-04-29 18:01 239 查看

写入事件日志

loadTOCNode(2, 'summary');
事件日志给应用程序提供了一种标准、集中的方法来记录重要的软件和硬件事件。 Windows 提供了一个用于查看日志的标准用户界面,即事件查看器。 使用公共语言的运行库 EventLog 组件,您可以方便地连接到本地和远程计算机上的现有事件日志,并在这些日志中填写条目。 您也可以从已有的日志读取条目并创建您自己的自定义事件日志。 使用最简单的方式,只需几步就可创建一个示例应用程序并写入事件日志中:

打开 Visual Studio .NET

在 Microsoft C# 中新建控制台应用程序。Visual C# .NET 为您创建一个公用类,以及一个空的 Main() 方法。

请确保项目至少引用了 System.dll

System System.Diagnostics 名称空间使用 using 指令,这样,在后面的代码中就不需要限定这些名称空间中的声明了。这些语句必须放在所有其他声明之前。

[code]using System;
using System.Diagnostics;

[/code]

若要写入事件日志,需要提供以下几条信息: 您的消息、要写入的日志名(如果不存在,就会创建一个名称)以及一个表示事件源的字符串。 某种源只能在一个事件日志中记录,因此,如果要在多个日志中写入消息,必须定义多个源。

[code]string sSource;
string sLog;
string sEvent;
sSource = "dotNET Sample App";
sLog = "Application";
sEvent = "Sample Event";

[/code]

有了所有这些信息后,第一步是使用 EventLog 类的两个静态方法先检查您的事件源是否存在,如果不存在,则创建与特定事件日志关联的事件源。 如果指定的日志名不存在,则在写入第一个条目时自动创建该名称。 如果没有为 CreateEventSource 方法提供日志名,则默认指定为应用程序日志。

[code]if (!EventLog.SourceExists(sSource))
EventLog.CreateEventSource(sSource,sLog);

[/code]

若要将消息写入事件日志,需使用静态方法 EventLog.WriteEntry(有多个不同的重载版本)。 在下面的代码中给出了最简单的方法,只需提供源字符串和您的消息,而比较复杂的方法还需提供事件 ID 和事件类型。

[code]EventLog.WriteEntry(sSource,sEvent);
EventLog.WriteEntry(sSource, sEvent, EventLogEntryType.Warning,  234);

[/code]

保存并运行代码,然后在事件查看器中检查应用程序日志,以查看您的新事件。



回到顶端

完整代码列表

loadTOCNode(2, 'summary');

[code]using System;
using System.Diagnostics;
namespace WriteToAnEventLog_csharp
{
/// <summary>
/// Summary description for Class1.
/// </summary>
class Class1
{
static void Main(string[] args)
{
string sSource;
string sLog;
string sEvent;
sSource = "dotNET Sample App";
sLog = "Application";
sEvent = "Sample Event";
if (!EventLog.SourceExists(sSource))
EventLog.CreateEventSource(sSource,sLog);
EventLog.WriteEntry(sSource,sEvent);
EventLog.WriteEntry(sSource, sEvent,
EventLogEntryType.Warning, 234);
}
}
}


[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: