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






1.67/5 (8投票s)
2007年6月13日
1分钟阅读

39545

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