65.9K
CodeProject 正在变化。 阅读更多。
Home

如何用 C# 编写自定义日志和源

2007年6月13日

1分钟阅读

viewsIcon

39545

downloadIcon

368

它将向您展示如何在 C#.Net 中编写自定义日志。

引言

本文将介绍如何为您的工具/程序编写自定义日志事件。 如果您打算创建一个工具,那么大多数专业人士喜欢使用事件日志来记录其信息、错误等,并且用户可以在事件查看器中查看这些日志。

背景

每当您要创建自定义事件日志时,它都会在 HKLM/ SYSTEM/ Services/ Eventlog 中创建注册表项。

例如,如果您要创建自定义日志“MyLog”,那么 MyLog 的注册表项将是 HKLM/ SYSTEM/ Services/ Eventlog/MyLog,事件文件将存储在 %SystemRoot%\System32\config\Biopassw.evt 路径中。

如果您想更改事件日志文件的路径,则必须在事件日志的 File 键中更改路径。

使用代码

这是代码:)

 
//Class for create custom log
using System.Diagnostics;
namespace EventExp
{
    class MyLog
    {
        //
        //create string object for source,log and event.
        //
        string mySource;
        string myLog;
        string myEvent;
        public MyLog()
        {
            //
            //assign text to source,log and event string.
            //
            mySource = "Sample Application";
            myLog = "MyLog";
            myEvent = "Sample Event";
        }
        public void CreateMyLog()
        {
            //
            //Check the event log if not exist then create it.
            //
            if (!EventLog.SourceExists(mySource))
            {
                EventLog.CreateEventSource(mySource, myLog);
            }
        }
        public void WriteMyLogEntry()
        {
            //
            //Will write entry in MyLog vent log.
            //
            EventLog.WriteEntry(mySource, myEvent);
            EventLog.WriteEntry(mySource, myEvent,
                EventLogEntryType.Warning, 234);
        }
    }
}
In program.cs inside main function:
//
            //Now write custom log
            //
            MyLog objectMylog = new MyLog();
            objectMylog.CreateMyLog();
            objectMylog.WriteMyLogEntry();


在事件查看器中,我们可以看到日志“MyLog”包含两个由 WriteMyLogEntry 函数写入的 Mylog 事件日志条目。

值得注意的点

当您为日志创建来源时,它会在注册表中写入映射。 一旦您创建了来源,如果您想将该来源更改为其他系统或自定义日志,那么在创建具有新的自定义/系统事件日志的来源之后,您必须重新启动系统。

© . All rights reserved.