EventLog.SourceExists Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 MyNewLog
bir 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 MyServer
kaynağını MySource
oluşturur ve olay günlüğüne MyNewLog
bir 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.