EventLog.SourceExists Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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 MyNewLog
peristiwa .
#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 MyNewLog
peristiwa .
#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.