EventLog.DeleteEventSource Method (String)

Removes the event source registration from the event log of the local computer.

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

public static void DeleteEventSource(
	string source
)

Parameters

source
Type: System.String

The name by which the application is registered in the event log system.

ExceptionCondition
ArgumentException

The source parameter does not exist in the registry of the local computer.

- or -

You do not have write access on the registry key for the event log.

Use this method to remove the registration of a Source from the local computer. DeleteEventSource accesses the registry on the local computer and removes the registration of your application as a valid source of events.

You can remove your component as a valid source of events if you no longer need it to write entries to that log. For example, you might do this if you need to change your component from one log to another. Because a source can only be registered to one log at a time, changing the log requires you to remove the current registration.

DeleteEventSource removes only the source registered to a log. If you want to remove the log itself, call Delete. If you only want to delete the log entries, call Clear. Delete and DeleteEventSource are static methods, so they can be called on the class itself. It is not necessary to create an instance of EventLog to call either method.

Deleting a log through a call to Delete automatically deletes the sources registered to that log. This can make other applications using that log inoperative.

NoteNote

If a source has already been mapped to a log and you remap it to a new log, you must restart the computer for the changes to take effect.

The following example deletes a source from the local computer. The example determines the log from its source, and then deletes the log.

NoteNote

More than one source might write to an event log. Before deleting a custom log, make sure there are no other sources writing to that log.

using System;
using System.Diagnostics;
using System.Threading;

class MySample
{

    public static void Main()
    {

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

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

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

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft