如何从一个源的应用程序事件日志中删除所有事件?

时间:2010-02-23 14:21:53

标签: c# .net event-log eventlog-source

我正在使用应用程序事件日志来编写有关我的程序中发生的活动的消息。我将源设置为我的应用程序的名称。我想让用户能够清除与我的程序相关的事件。这可能吗?我只看到了清除整个日志的方法。

我在.NET 2.0中使用c#。

2 个答案:

答案 0 :(得分:1)

无法从事件日志中清除特定事件。所有事件都清楚,或者没有。

答案 1 :(得分:1)

这是来自MSDN库的一段代码,看看这是否是你要找的。

  string logName;

    if (EventLog.SourceExists("MySource"))
    {
        // Find the log associated with this source.    
        logName = EventLog.LogNameFromSourceName("MySource", ".");
        // Make sure the source is in the log we believe it to be in. 
        if (logName != "MyLog")
            return;
        // Delete the source and the log.
        EventLog.DeleteEventSource("MySource");
        EventLog.Delete(logName);

        Console.WriteLine(logName + " deleted.");
    }
    else
    {
        // Create the event source to make next try successful.
        EventLog.CreateEventSource("MySource", "MyLog");
    }

另外对我有用的是使用

为我的应用程序创建一个事件源
 if (!EventLog.SourceExists(source))
        {
            EventLog.CreateEventSource(source, additional);
        }

并使用

记录其中的所有详细信息
 EventLog.WriteEntry(Source, error, EventLogEntryType.Error);

然后当我想清除我的日志时,我使用

 EventLog myEventLog = new EventLog(Constants.EventSource);
 myEventLog.Clear();

这将仅清除您在源下记录的日志。希望它有帮助:)