O'Reilly logo

C# Cookbook by Jay Hilyard, Stephen Teilhet

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

6.10. Watching the Event Log for a Specific Entry

Problem

You may have multiple applications that write to a single event log. For each of these applications, you want a monitoring application to watch for one or more specific log entries to be written to the event log. For example, you might want to watch for a log entry that indicates that an application encountered a critical error or shut down unexpectedly. These log entries should be reported in real time.

Solution

Monitoring an event log for a specific entry requires the following steps:

  1. Create the following method to set up the event handler to handle event log writes:

    public void WatchForAppEvent(EventLog log)
    {
        log.EnableRaisingEvents = true;
        log.EntryWritten += new EntryWrittenEventHandler(OnEntryWritten);
    }
  2. Create the event handler to examine the log entries and determine whether further action is to be performed. For example:

    public static void OnEntryWritten(object source, 
                                      EntryWrittenEventArgs entryArg) 
    {
        if (entryArg.Entry.EntryType == EventLogEntryType.Error)
        {
            Console.WriteLine(entryArg.Entry.Message);
            Console.WriteLine(entryArg.Entry.Category);
            Console.WriteLine(entryArg.Entry.EntryType.ToString( ));
            // Do further actions here as necessary...
        }
    }

Discussion

This recipe revolves around the EntryWrittenEventHandler delegate, which calls back a method whenever any new entry is written to the event log. The EntryWrittenEventHandler delegate accepts two arguments: a source of type object and an entryArg of type EntryWrittenEventArgs ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required