EventLog.SourceExists Yöntem

Tanım

Belirli bir olay kaynağını bilgisayarın kayıt defterinde arar.

Aşırı Yüklemeler

SourceExists(String)

Bir olay kaynağının yerel bilgisayarda kayıtlı olup olmadığını belirler.

SourceExists(String, String)

Bir olay kaynağının belirtilen bilgisayarda kayıtlı olup olmadığını belirler.

SourceExists(String)

Kaynak:
EventLog.cs
Kaynak:
EventLog.cs
Kaynak:
EventLog.cs

Bir olay kaynağının yerel bilgisayarda kayıtlı olup olmadığını belirler.

public:
 static bool SourceExists(System::String ^ source);
public static bool SourceExists (string source);
static member SourceExists : string -> bool
Public Shared Function SourceExists (source As String) As Boolean

Parametreler

source
String

Olay kaynağının adı.

Döndürülenler

true olay kaynağı yerel bilgisayarda kayıtlıysa; aksi takdirde , false.

Özel durumlar

source bulunamadı, ancak olay günlüklerinin bir bölümü veya tümü aranamadı.

Örnekler

Aşağıdaki örnek, henüz yoksa kaynağı MySource oluşturur ve olay günlüğüne MyNewLogbir giriş yazar.

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;
int main()
{
   
   // Create the source, if it does not already exist.
   if (  !EventLog::SourceExists( "MySource" ) )
   {
      EventLog::CreateEventSource( "MySource", "MyNewLog" );
      Console::WriteLine( "CreatingEventSource" );
   }

   
   // Create an EventLog instance and assign its source.
   EventLog^ myLog = gcnew 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." );
}
using System;
using System.Diagnostics;
using System.Threading;

class MySample{

    public static void Main(){

        // Create the source, if it does not already exist.
        if(!EventLog.SourceExists("MySource"))
        {
            // An event log source should not be created and immediately used.
            // There is a latency time to enable the source, it should be created
            // prior to executing the application that uses the source.
            // Execute this sample a second time to use the new source.
            EventLog.CreateEventSource("MySource", "MyNewLog");
            Console.WriteLine("CreatingEventSource");
            Console.WriteLine("Exiting, execute the application a second time to use the source.");
            // The source is created.  Exit the application to allow it to be registered.
            return;
        }

        // Create an EventLog instance and assign its source.
        EventLog myLog = 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.");
    }
}
Option Explicit
Option Strict
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
End Class

Açıklamalar

Yerel bilgisayarda bir olay kaynağı olup olmadığını belirlemek için bu yöntemi kullanın. Yerel bilgisayarda bir günlük olup olmadığını belirlemek istiyorsanız kullanın Exists.

Bu yöntem kayıt defterine eriştiğinden, yerel bilgisayarda uygun kayıt defteri izinlerine sahip olmanız gerekir; aksi takdirde, bir SecurityException oluşturulur.

Not

Windows Vista ve sonraki sürümlerde veya Windows Server 2003'te bir olay kaynağı aramak için yönetici ayrıcalıklarına sahip olmanız gerekir.

Bu gereksinimin nedeni, olay kaynağının benzersiz olup olmadığını belirlemek için güvenlik de dahil olmak üzere tüm olay günlüklerinin aranması gerektiğidir. Windows Vista'dan başlayarak, kullanıcıların güvenlik günlüğüne erişim izni yoktur; bu nedenle, bir SecurityException oluşturulur.

Windows Vista'dan başlayarak, Kullanıcı Hesabı Denetimi (UAC) kullanıcının ayrıcalıklarını belirler. Yerleşik Yöneticiler grubunun bir üyesi iseniz, size iki çalışma zamanı erişim belirteci atanır: Standart kullanıcı erişim belirteci ve yönetici erişim belirteci. Varsayılan olarak, standart kullanıcı rolünde olursunuz. Performans sayaçlarına erişen kodu yürütmek için öncelikle ayrıcalıklarınızı standart kullanıcıdan yöneticiye yükseltmeniz gerekir. Bir uygulamayı başlattığınızda, uygulama simgesine sağ tıklayıp yönetici olarak çalıştırmak istediğinizi belirterek bunu yapabilirsiniz.

Not

Hesap altında LocalSystem yürütülen bir hizmetin bu yöntemi yürütmek için gereken ayrıcalıkları yoktur. Çözüm, olay kaynağının içinde ServiceInstallervar olup olmadığını denetlemek ve yoksa kaynağı yükleyicide oluşturmaktır.

Yeni bir kaynağa aynı bilgisayardaki mevcut bir kaynağın adını veremediğiniz için, tarafından belirtilen source ada sahip bir kaynağın yerel bilgisayarda zaten mevcut olmadığından emin olmak için çağırmaya CreateEventSource çalışmadan önce bu yöntemi kullanın. source parametresi büyük/küçük harfe duyarlı değildir.

Ayrıca bkz.

Şunlara uygulanır

SourceExists(String, String)

Kaynak:
EventLog.cs
Kaynak:
EventLog.cs
Kaynak:
EventLog.cs

Bir olay kaynağının belirtilen bilgisayarda kayıtlı olup olmadığını belirler.

public:
 static bool SourceExists(System::String ^ source, System::String ^ machineName);
public static bool SourceExists (string source, string machineName);
static member SourceExists : string * string -> bool
Public Shared Function SourceExists (source As String, machineName As String) As Boolean

Parametreler

source
String

Olay kaynağının adı.

machineName
String

Aranacak bilgisayarın adı veya yerel bilgisayar için "."

Döndürülenler

true olay kaynağı belirtilen bilgisayarda kayıtlıysa; aksi takdirde , false.

Özel durumlar

machineName geçersiz bir bilgisayar adıdır.

source bulunamadı, ancak olay günlüklerinin bir bölümü veya tümü aranamadı.

Örnekler

Aşağıdaki örnek, bilgisayarda MyServerkaynağını MySource oluşturur ve olay günlüğüne MyNewLogbir giriş yazar.

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;
int main()
{
   
   // Create the source, if it does not already exist.
   if (  !EventLog::SourceExists( "MySource", "MyServer" ) )
   {
      EventLog::CreateEventSource( "MySource", "MyNewLog", "MyServer" );
      Console::WriteLine( "CreatingEventSource" );
   }

   
   // Create an EventLog instance and assign its source.
   EventLog^ myLog = gcnew 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." );
}
using System;
using System.Diagnostics;
using System.Threading;

class MySample{

    public static void Main(){

        // Create the source, if it does not already exist.
        if(!EventLog.SourceExists("MySource", "MyServer"))
        {
            // An event log source should not be created and immediately used.
            // There is a latency time to enable the source, it should be created
            // prior to executing the application that uses the source.
            // Execute this sample a second time to use the new source.
            EventLog.CreateEventSource("MySource", "MyNewLog", "MyServer");
            Console.WriteLine("CreatingEventSource");
            Console.WriteLine("Exiting, execute the application a second time to use the source.");
            // The source is created.  Exit the application to allow it to be registered.
            return;
        }

        // Create an EventLog instance and assign its source.
        EventLog myLog = 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.");
    }
}
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", "MyServer") Then
            EventLog.CreateEventSource("MySource", "MyNewLog", "MyServer")
            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
End Class

Açıklamalar

parametresi tarafından machineName belirtilen bilgisayarda bir olay kaynağı olup olmadığını belirlemek için bu yöntemi kullanın. Belirtilen bilgisayarda bir günlük olup olmadığını belirlemek istiyorsanız kullanın Exists.

Bu yöntem kayıt defterine eriştiğinden, verilen sunucuda uygun kayıt defteri izinlerine sahip olmanız gerekir; aksi takdirde, bir SecurityException oluşturulur.

Not

Windows Vista ve sonraki sürümlerde veya Windows Server 2003'te bir olay kaynağı aramak için yönetici ayrıcalıklarına sahip olmanız gerekir.

Bu gereksinimin nedeni, olay kaynağının benzersiz olup olmadığını belirlemek için güvenlik de dahil olmak üzere tüm olay günlüklerinin aranması gerektiğidir. Windows Vista'dan başlayarak, kullanıcıların güvenlik günlüğüne erişim izni yoktur; bu nedenle, bir SecurityException oluşturulur.

Windows Vista'dan başlayarak, Kullanıcı Hesabı Denetimi (UAC) kullanıcının ayrıcalıklarını belirler. Yerleşik Yöneticiler grubunun bir üyesi iseniz, size iki çalışma zamanı erişim belirteci atanır: Standart kullanıcı erişim belirteci ve yönetici erişim belirteci. Varsayılan olarak, standart kullanıcı rolünde olursunuz. Performans sayaçlarına erişen kodu yürütmek için öncelikle ayrıcalıklarınızı standart kullanıcıdan yöneticiye yükseltmeniz gerekir. Bir uygulamayı başlattığınızda, uygulama simgesine sağ tıklayıp yönetici olarak çalıştırmak istediğinizi belirterek bunu yapabilirsiniz.

Not

Hesap altında LocalSystem yürütülen bir hizmetin bu yöntemi yürütmek için gereken ayrıcalıkları yoktur. Çözüm, olay kaynağının içinde ServiceInstallervar olup olmadığını denetlemek ve yoksa kaynağı yükleyicide oluşturmaktır.

Yeni bir kaynağa aynı bilgisayardaki mevcut bir kaynağın adını veremediğiniz için, tarafından belirtilen source ada sahip bir kaynağın bilgisayarda zaten mevcut olmadığından emin olmak için çağırmaya CreateEventSource çalışmadan önce bu yöntemi kullanın. source ve machineName parametreleri büyük/küçük harfe duyarlı değildir.

SourceExists bir static yöntemdir, bu nedenle sınıfın kendisinde çağrılabilir. çağrısı SourceExistsiçin bir örneği EventLog oluşturmak gerekli değildir.

Ayrıca bkz.

Şunlara uygulanır