Export (0) Print
Expand All

EventLog.SourceExists Method (String)

Determines whether an event source is registered on the local computer.

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

'Declaration
Public Shared Function SourceExists ( _
	source As String _
) As Boolean

Parameters

source
Type: System.String
The name of the event source.

Return Value

Type: System.Boolean
true if the event source is registered on the local computer; otherwise, false.

ExceptionCondition
SecurityException

source was not found, but some or all of the event logs could not be searched.

Use this method to determine whether an event source exists on the local computer. If you want to determine whether a log exists on the local computer, use Exists.

Because this method accesses the registry, you must have the appropriate registry permissions on the local computer; otherwise, a SecurityException will be thrown.

NoteNote

To search for an event source in Windows Vista and later or Windows Server 2003, you must have administrative privileges.

The reason for this requirement is that all event logs, including security, must be searched to determine whether the event source is unique. Starting with Windows Vista, users do not have permission to access the security log; therefore, a SecurityException is thrown.

Starting with Windows Vista, User Account Control (UAC) determines the privileges of a user. If you are a member of the Built-in Administrators group, you are assigned two run-time access tokens: a standard user access token and an administrator access token. By default, you are in the standard user role. To execute the code that accesses performance counters, you must first elevate your privileges from standard user to administrator. You can do this when you start an application by right-clicking the application icon and indicating that you want to run as an administrator.

NoteNote

A service that is executing under the LocalSystem account does not have the privileges required to execute this method. The solution is to check whether the event source exists in the ServiceInstaller, and if it does not exist, to create the source in the installer.

Because you cannot give a new source the name of an existing source on the same computer, use this method before attempting to call CreateEventSource to ensure that a source with the name specified by source does not already exist on the local computer. The source parameter is not case-sensitive.

The following example creates the source MySource if it does not already exist, and writes an entry to the event log MyNewLog.


Option Explicit
Option Strict
Imports System
Imports System.Diagnostics
Imports System.Threading

Class MySample
    Public Shared Sub Main()
        ' Create the source, if it does not already exist.
        If Not EventLog.SourceExists("MySource") Then
            EventLog.CreateEventSource("MySource", "MyNewLog")
            Console.WriteLine("CreatingEventSource")
        End If

        ' Create an EventLog instance and assign its source.
        Dim myLog As New EventLog()
        myLog.Source = "MySource"

        ' Write an informational entry to the event log.    
        myLog.WriteEntry("Writing to event log.")

        Console.WriteLine("Message written to event log.")
    End Sub ' Main
End Class ' MySample


.NET Framework

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

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

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

Community Additions

ADD
Show:
© 2014 Microsoft