.NET Tip: Writing to the Event Log


How to Boost Database Development Productivity on Linux, Docker, and Kubernetes with Microsoft SQL Server 2017

The Windows The Windows event log is great place to log pertinent information from your application. There is built-in support for accessing the event log in .NET that you can easily implement. Here, I would like you show you a simple method to add entries to the Application event log. First, take a look at the code to use a new Logger class that writes to the event log.

Logger Log = new Logger("CSTips");
Log.AddError("Error message");
Log.AddInformation("Informational message");
Log.AddWarning("Warning message");

The first line of code creates a new instance of the Logger class. The constructor of the Logger class requires a parameter that indicates the source of the messages. This would typically be the name of your application. The following three lines of code write error, information, and warning entries respectively to the event log. Using the Logger class is very straightforward and keeps your application code clean. Now, take a look at the Logger class below to see how the entries are added to the event log.

public class Logger
   private EventLog _EventLog;
   public string _Source { get; set; }
   public string _Log { get; set; }

   public Logger(string SourceName)
      _EventLog = new EventLog();
      _Source = SourceName;

      if (!EventLog.SourceExists(_Source))
         EventLog.CreateEventSource(_Source, _Log);
      _EventLog.Source = _Source;

   public void Add(string Message,
                   System.Diagnostics.EventLogEntryType eType)
      _EventLog.WriteEntry(Message, eType);

   public void AddError(string Message)
      Add(Message, System.Diagnostics.EventLogEntryType.Error);

   public void AddWarning(string Message)
    { Add(Message, System.Diagnostics.EventLogEntryType.Warning);

   public void AddInformation(string Message)

The Logger class has local variables to store a reference to the Windows event log, the source of the messages, and the log to which the messages will be written. In this example, the _Log variable is left empty, so all entries will go to the Application log by default. If you would like, you can experiment with this so that the entries are written to a different log. The constructor takes the name of the source application as a parameter. It creates an instance of the EventLog class and creates a new event source if it does not already exist. The Add method takes a message to write to the event log as well as the type for the entry and writes it to the event log. The AddError, AddWarning, and AddInformation methods are there for your convenience. Each method has a single parameter for the message to write to the event log. The methods then call Add with the appropriate entry type information. This keeps your calling code clean and readable.

I hope that, from this example, you can see how easy it is to write your own entries to the event log. There are many tools available that you then could use to help analyze the information sent to the event log by your application.

About the Author

Jay Miller is a Software Engineer with Electronic Tracking Systems, a company dedicated to robbery prevention, apprehension, and recovery based in Carrollton, Texas. Jay has been working with .NET since the release of the first beta and is co-author of Learn Microsoft Visual Basic.Net In a Weekend. Jay can be reached via email at jmiller@sm-ets.com.


  • I studied it already

    Posted by asalways on 05/01/2008 05:44am

    Amazing that I just too studied it weeks ago via a Japanese site

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • As all sorts of data becomes available for storage, analysis and retrieval - so called 'Big Data' - there are potentially huge benefits, but equally huge challenges...
  • The agile organization needs knowledge to act on, quickly and effectively. Though many organizations are clamouring for "Big Data", not nearly as many know what to do with it...
  • Cloud-based integration solutions can be confusing. Adding to the confusion are the multiple ways IT departments can deliver such integration...

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date