This documentation is archived and is not being maintained.

EventLog.Log Property

Gets or sets the name of the log to read from or write to.

Namespace: System.Diagnostics
Assembly: System (in system.dll)

public string Log { get; set; }
/** @property */
public String get_Log ()

/** @property */
public void set_Log (String value)

public function get Log () : String

public function set Log (value : String)

Property Value

The name of the log. This can be Application, System, Security, or a custom log name. The default is an empty string ("").

Three log files exist by default on the server: Application, System, and Security. Applications and services use the Application log file. Device drivers use the System log file. The system generates success and failure audit events in the Security log when auditing is turned on. If you have other applications installed, like Active Directory on Windows servers, there might be other default log files. In addition, you can create custom log files on a local or remote computer. Custom logs help organize your entries in a more detailed way than is allowed when your components write events to the default Application log.


Log names are limited to eight characters. According to the system, MyLogSample1 and MyLogSample2 are the same log.

If you write to an event log, it is not enough to specify the Log property. You must associate a Source property with your event log resource to connect it to a particular log. It is not necessary to specify a Source when only reading from a log, but an event source must be associated with the event log resource in the server's registry. You can specify only the Log name and MachineName (server computer name) to read from it.


You are not required to specify the MachineName if you are connecting to a log. If you do not specify the MachineName, the local computer (".") is assumed.

If the Source property has not been specified, a call to Log returns an empty string if Log has not been explicitly set (by setting the Log property, or through the constructor). If the Source has been specified, Log returns the name of the log to which that source was registered.

A source can only be registered to one log at a time. If the Source property was set for an instance of EventLog, you cannot change the Log property for that EventLog without changing the value of Source or calling DeleteEventSource first. If you change the Log property after the Source property has been set, writing a log entry throws an exception.

The operating system stores event logs as files. When you use EventLogInstaller or CreateEventSource to create a new event log, the associated file is stored in the %SystemRoot%\System32\Config directory on the specified computer. The file name is set by appending the first 8 characters of the Log property with the ".evt" file name extension.

You cannot create a new log using the Log property alone (without specifying a source for the log). You can call CreateEventSource, passing in a new log name as a parameter, and then call DeleteEventSource. However, the intent is usually either to create (and write entries to) new application-specific logs, or to read from existing logs.

If the Log value changes, the event log is closed and all event handles are released.

Caution noteCaution

If you set the Log property to the name of a log that does not exist, the system attaches the EventLog to the Application log, but does not warn you that it is using a log other than the one you specified.

The following example reads entries in the event log, "NewEventLog", on the local computer.

using System;
using System.Diagnostics;
class MySample{

    public static void Main(){

        EventLog myNewLog = new EventLog();
        myNewLog.Log = "NewEventLog";                      
        foreach(EventLogEntry entry in myNewLog.Entries){
            Console.WriteLine("\tEntry: " + entry.Message);

import System.*;
import System.Diagnostics.*;
import System.Collections.*;

class MySample
    public static void main(String[] args)
        EventLog myNewLog = new EventLog();
        EventLogEntry entry;
        IEnumerator objEnum = myNewLog.get_Entries().GetEnumerator();
        while (objEnum.MoveNext()) {
            entry = (EventLogEntry)objEnum.get_Current();
            Console.WriteLine("\tEntry: " + entry.get_Message());
    } //main
} //MySample

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0, 1.1, 1.0