Bagikan melalui


EventLog.SourceExists Metode

Definisi

Mencari registri komputer untuk sumber peristiwa tertentu.

Overload

SourceExists(String)

Menentukan apakah sumber peristiwa terdaftar di komputer lokal.

SourceExists(String, String)

Menentukan apakah sumber kejadian terdaftar pada komputer tertentu.

SourceExists(String)

Sumber:
EventLog.cs
Sumber:
EventLog.cs
Sumber:
EventLog.cs

Menentukan apakah sumber peristiwa terdaftar di komputer lokal.

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

Parameter

source
String

Nama sumber peristiwa.

Mengembalikan

true jika sumber kejadian terdaftar di komputer lokal; jika tidak, false.

Pengecualian

source tidak ditemukan, tetapi beberapa atau semua log peristiwa tidak dapat dicari.

Contoh

Contoh berikut membuat sumber MySource jika belum ada, dan menulis entri ke log MyNewLogperistiwa .

#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

Keterangan

Gunakan metode ini untuk menentukan apakah ada sumber kejadian pada komputer lokal. Jika Anda ingin menentukan apakah log ada di komputer lokal, gunakan Exists.

Karena metode ini mengakses registri, Anda harus memiliki izin registri yang sesuai di komputer lokal; jika tidak, SecurityException akan dilemparkan.

Catatan

Untuk mencari sumber kejadian di Windows Vista dan yang lebih baru atau Windows Server 2003, Anda harus memiliki hak administratif.

Alasan untuk persyaratan ini adalah bahwa semua log peristiwa, termasuk keamanan, harus dicari untuk menentukan apakah sumber peristiwa unik. Dimulai dengan Windows Vista, pengguna tidak memiliki izin untuk mengakses log keamanan; oleh karena itu, dilemparkan SecurityException .

Dimulai dengan Windows Vista, Kontrol Akun Pengguna (UAC) menentukan hak istimewa pengguna. Jika Anda adalah anggota grup Administrator Bawaan, Anda diberi dua token akses run-time: token akses pengguna standar dan token akses administrator. Secara default, Anda berada dalam peran pengguna standar. Untuk menjalankan kode yang mengakses penghitung kinerja, Anda harus terlebih dahulu meningkatkan hak istimewa Anda dari pengguna standar ke administrator. Anda dapat melakukan ini saat memulai aplikasi dengan mengeklik kanan ikon aplikasi dan menunjukkan bahwa Anda ingin menjalankan sebagai administrator.

Catatan

Layanan yang dijalankan di bawah LocalSystem akun tidak memiliki hak istimewa yang diperlukan untuk menjalankan metode ini. Solusinya adalah memeriksa apakah sumber peristiwa ada di ServiceInstaller, dan jika tidak ada, untuk membuat sumber di alat penginstal.

Karena Anda tidak dapat memberikan nama sumber baru dari sumber yang ada pada komputer yang sama, gunakan metode ini sebelum mencoba memanggil CreateEventSource untuk memastikan bahwa sumber dengan nama yang ditentukan oleh source belum ada pada komputer lokal. Parameter source tidak peka huruf besar/kecil.

Lihat juga

Berlaku untuk

SourceExists(String, String)

Sumber:
EventLog.cs
Sumber:
EventLog.cs
Sumber:
EventLog.cs

Menentukan apakah sumber kejadian terdaftar pada komputer tertentu.

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

Parameter

source
String

Nama sumber peristiwa.

machineName
String

Nama komputer yang akan dilihat, atau "." untuk komputer lokal.

Mengembalikan

true jika sumber kejadian terdaftar di komputer yang diberikan; jika tidak, false.

Pengecualian

machineName adalah nama komputer yang tidak valid.

source tidak ditemukan, tetapi beberapa atau semua log peristiwa tidak dapat dicari.

Contoh

Contoh berikut membuat sumber MySource di komputer MyServer, dan menulis entri ke log MyNewLogperistiwa .

#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

Keterangan

Gunakan metode ini untuk menentukan apakah sumber kejadian ada di komputer yang ditentukan oleh machineName parameter . Jika Anda ingin menentukan apakah log ada di komputer yang ditentukan, gunakan Exists.

Karena metode ini mengakses registri, Anda harus memiliki izin registri yang sesuai di server yang diberikan; jika tidak, SecurityException akan dilemparkan.

Catatan

Untuk mencari sumber kejadian di Windows Vista dan yang lebih baru atau Windows Server 2003, Anda harus memiliki hak administratif.

Alasan untuk persyaratan ini adalah bahwa semua log peristiwa, termasuk keamanan, harus dicari untuk menentukan apakah sumber peristiwa unik. Dimulai dengan Windows Vista, pengguna tidak memiliki izin untuk mengakses log keamanan; oleh karena itu, dilemparkan SecurityException .

Dimulai dengan Windows Vista, Kontrol Akun Pengguna (UAC) menentukan hak istimewa pengguna. Jika Anda adalah anggota grup Administrator Bawaan, Anda diberi dua token akses run-time: token akses pengguna standar dan token akses administrator. Secara default, Anda berada dalam peran pengguna standar. Untuk menjalankan kode yang mengakses penghitung kinerja, Anda harus terlebih dahulu meningkatkan hak istimewa Anda dari pengguna standar ke administrator. Anda dapat melakukan ini saat memulai aplikasi dengan mengeklik kanan ikon aplikasi dan menunjukkan bahwa Anda ingin menjalankan sebagai administrator.

Catatan

Layanan yang dijalankan di bawah LocalSystem akun tidak memiliki hak istimewa yang diperlukan untuk menjalankan metode ini. Solusinya adalah memeriksa apakah sumber peristiwa ada di ServiceInstaller, dan jika tidak ada, untuk membuat sumber di alat penginstal.

Karena Anda tidak dapat memberikan nama sumber baru dari sumber yang ada pada komputer yang sama, gunakan metode ini sebelum mencoba memanggil CreateEventSource untuk memastikan bahwa sumber dengan nama yang ditentukan oleh source belum ada pada komputer. Parameter source dan machineName tidak peka huruf besar/kecil.

SourceExists adalah static metode , sehingga dapat dipanggil pada kelas itu sendiri. Tidak perlu membuat instans EventLog untuk memanggil SourceExists.

Lihat juga

Berlaku untuk