Как удалить все события из журнала событий приложений только для одного источника? - PullRequest
3 голосов
/ 23 февраля 2010

Я использую журнал событий приложения, чтобы писать сообщения об активности, происходящей в моей программе. Я установил источник на имя моего приложения. Я хотел бы предложить пользователю возможность очищать только события, связанные с моей программой. Это возможно? Я вижу только способ очистить весь журнал.

Я использую c # в .NET 2.0.

Ответы [ 2 ]

1 голос
/ 21 декабря 2013

Это фрагмент кода из библиотеки 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();

Это очистит только те журналы, которые вы зарегистрировали под своим источником. Надеюсь, это поможет :)

1 голос
/ 23 февраля 2010

Невозможно удалить определенные события из журнала событий. Понятно все события или ничего.

...