Export (0) Print
Expand All

EventLog.Log Property

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

[Visual Basic]
Public Property Log As String
public string Log {get; set;}
public: __property String* get_Log();
public: __property void set_Log(String*);
public function get Log() : String;
public function set Log(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 2000, 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.

Note   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 in order 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.

Note   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 once the Source property has been set, writing a log entry throws an exception.

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   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.


[Visual Basic, C#, C++] The following example reads entries in the event log, "NewEventLog", on the local computer.

[Visual Basic] 
Imports System
Imports System.Diagnostics
Imports Microsoft.VisualBasic

Class MySample
    Public Shared Sub Main()
        Dim myNewLog As New EventLog()
        myNewLog.Log = "NewEventLog"
        Dim entry As EventLogEntry
        For Each entry In  myNewLog.Entries
            Console.WriteLine((ControlChars.Tab & "Entry: " & entry.Message))
        Next entry
    End Sub 'Main
End Class 'MySample

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);

#using <mscorlib.dll>
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;

int main(){

    EventLog* myNewLog = new EventLog();
    myNewLog->Log = S"NewEventLog";                      
    System::Collections::IEnumerator* myEnum = myNewLog->Entries->GetEnumerator();
    while (myEnum->MoveNext())
        EventLogEntry* entry = __try_cast<EventLogEntry*>(myEnum->Current);
        Console::WriteLine(S"\tEntry: {0}", entry->Message);

[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.


Platforms: Windows NT Server 4.0, Windows NT Workstation 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

.NET Framework Security: 

See Also

EventLog Class | EventLog Members | System.Diagnostics Namespace | MachineName | Source | Entries | Exists | Delete | CreateEventSource | EventLogEntryCollection

© 2014 Microsoft