Sdílet prostřednictvím


EventLog.SourceExists Metoda

Definice

Vyhledá daný zdroj událostí v registru počítače.

Přetížení

SourceExists(String)

Určuje, zda je zdroj událostí registrován v místním počítači.

SourceExists(String, String)

Určuje, zda je zdroj událostí registrován v zadaném počítači.

SourceExists(String)

Zdroj:
EventLog.cs
Zdroj:
EventLog.cs
Zdroj:
EventLog.cs

Určuje, zda je zdroj událostí registrován v místním počítači.

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

Parametry

source
String

Název zdroje události.

Návraty

truepokud je zdroj událostí zaregistrovaný v místním počítači; v opačném případě . false

Výjimky

source nebyl nalezen, ale některé nebo všechny protokoly událostí nelze prohledat.

Příklady

Následující příklad vytvoří zdroj MySource , pokud ještě neexistuje, a zapíše položku do protokolu MyNewLogudálostí .

#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

Poznámky

Tuto metodu použijte k určení, zda zdroj událostí existuje v místním počítači. Pokud chcete zjistit, jestli v místním počítači existuje protokol, použijte Exists.

Vzhledem k tomu, že tato metoda přistupuje k registru, musíte mít odpovídající oprávnění registru na místním počítači; SecurityException v opačném případě bude vyvolán.

Poznámka

Chcete-li vyhledat zdroj událostí v systému Windows Vista a novějších nebo Windows Server 2003, musíte mít oprávnění správce.

Důvodem tohoto požadavku je, že všechny protokoly událostí, včetně zabezpečení, musí být prohledány, aby se zjistilo, jestli je zdroj událostí jedinečný. Počínaje systémem Windows Vista nemají uživatelé oprávnění k přístupu k protokolu zabezpečení. SecurityException proto je vyvolán.

Počínaje systémem Windows Vista určuje řízení uživatelských účtů (UAC) oprávnění uživatele. Pokud jste členem předdefinované skupiny Administrators, máte přiřazeny dva přístupové tokeny run-time: token přístupu uživatele se standardním oprávněním a token přístupu správce. Ve výchozím nastavení máte roli standardního uživatele. Pokud chcete spustit kód, který přistupuje k čítačům výkonu, musíte nejprve zvýšit oprávnění ze standardního uživatele na správce. Můžete to udělat při spuštění aplikace tak, že kliknete pravým tlačítkem na ikonu aplikace a označíte, že chcete spustit jako správce.

Poznámka

Služba, která se spouští pod tímto účtem LocalSystem , nemá oprávnění potřebná ke spuštění této metody. Řešením je zkontrolovat, jestli zdroj události existuje v ServiceInstallera pokud neexistuje, vytvořit zdroj v instalačním programu.

Vzhledem k tomu, že nelze novému zdroji dát název existujícího zdroje ve stejném počítači, použijte tuto metodu před pokusem o volání CreateEventSource , aby se zajistilo, že zdroj s názvem zadaným source v místním počítači již neexistuje. V source parametru se nerozlišuje velká a malá písmena.

Viz také

Platí pro

SourceExists(String, String)

Zdroj:
EventLog.cs
Zdroj:
EventLog.cs
Zdroj:
EventLog.cs

Určuje, zda je zdroj událostí registrován v zadaném počítači.

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

Parametry

source
String

Název zdroje události.

machineName
String

Název počítače, na kterém se má hledat, nebo "." pro místní počítač.

Návraty

truepokud je zdroj událostí zaregistrovaný na daném počítači; v opačném případě . false

Výjimky

machineName je neplatný název počítače.

source nebyl nalezen, ale některé nebo všechny protokoly událostí nelze prohledat.

Příklady

Následující příklad vytvoří zdroj MySource v počítači MyServera zapíše položku do protokolu MyNewLogudálostí .

#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

Poznámky

Tuto metodu použijte k určení, zda v počítači určeném parametrem machineName existuje zdroj událostí. Pokud chcete zjistit, jestli v zadaném počítači existuje protokol, použijte Exists.

Vzhledem k tomu, že tato metoda přistupuje k registru, musíte mít příslušná oprávnění registru na daném serveru; SecurityException v opačném případě bude vyvolán.

Poznámka

Chcete-li vyhledat zdroj událostí v systému Windows Vista a novějších nebo Windows Server 2003, musíte mít oprávnění správce.

Důvodem tohoto požadavku je, že všechny protokoly událostí, včetně zabezpečení, musí být prohledány, aby se zjistilo, jestli je zdroj událostí jedinečný. Počínaje systémem Windows Vista nemají uživatelé oprávnění k přístupu k protokolu zabezpečení. SecurityException proto je vyvolán.

Počínaje systémem Windows Vista určuje řízení uživatelských účtů (UAC) oprávnění uživatele. Pokud jste členem předdefinované skupiny Administrators, máte přiřazeny dva přístupové tokeny run-time: token přístupu uživatele se standardním oprávněním a token přístupu správce. Ve výchozím nastavení máte roli standardního uživatele. Pokud chcete spustit kód, který přistupuje k čítačům výkonu, musíte nejprve zvýšit oprávnění ze standardního uživatele na správce. Můžete to udělat při spuštění aplikace tak, že kliknete pravým tlačítkem na ikonu aplikace a označíte, že chcete spustit jako správce.

Poznámka

Služba, která se spouští pod tímto účtem LocalSystem , nemá oprávnění potřebná ke spuštění této metody. Řešením je zkontrolovat, jestli zdroj události existuje v ServiceInstallera pokud neexistuje, vytvořit zdroj v instalačním programu.

Vzhledem k tomu, že nelze novému zdroji dát název existujícího zdroje ve stejném počítači, použijte tuto metodu před pokusem o volání CreateEventSource , abyste zajistili, že zdroj s názvem zadaným source v počítači již neexistuje. V source parametrech a machineName se nerozlišují velká a malá písmena.

SourceExistsstatic je metoda, takže ji lze volat v samotné třídě. Není nutné vytvořit instanci EventLog pro volání SourceExists.

Viz také

Platí pro