EventLog.GetEventLogs Methode

Definition

Erstellt ein Array der Ereignisprotokolle.

Überlädt

GetEventLogs(String)

Sucht nach allen Ereignisprotokollen auf dem angegebenen Computer und erstellt ein Array von EventLog-Objekten, das die Liste enthält.

GetEventLogs()

Sucht nach allen Ereignisprotokollen auf dem lokalen Computer und erstellt ein Array von EventLog-Objekten, das die Liste enthält.

GetEventLogs(String)

Sucht nach allen Ereignisprotokollen auf dem angegebenen Computer und erstellt ein Array von EventLog-Objekten, das die Liste enthält.

public:
 static cli::array <System::Diagnostics::EventLog ^> ^ GetEventLogs(System::String ^ machineName);
public static System.Diagnostics.EventLog[] GetEventLogs (string machineName);
static member GetEventLogs : string -> System.Diagnostics.EventLog[]
Public Shared Function GetEventLogs (machineName As String) As EventLog()

Parameter

machineName
String

Der Computer, auf dem nach Ereignisprotokollen gesucht werden soll.

Gibt zurück

Ein Array vom Typ EventLog, das die auf dem angegebenen Computer vorhandenen Protokolle darstellt.

Ausnahmen

Der machineName-Parameter ist ein ungültiger Computername.

Sie verfügen nicht über Lesezugriff auf die Registrierung.

- oder -

Auf dem Computer ist kein Ereignisprotokolldienst vorhanden.

Beispiele

Im folgenden Beispiel wird eine Liste der Protokolle auf dem Computer "myServer" abgerufen. Anschließend wird der Name der einzelnen Protokolle ausgegeben.

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;
int main()
{
   array<EventLog^>^remoteEventLogs;
   remoteEventLogs = EventLog::GetEventLogs( "myServer" );
   Console::WriteLine( "Number of logs on computer: {0}", remoteEventLogs->Length );
   System::Collections::IEnumerator^ myEnum = remoteEventLogs->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      EventLog^ log = safe_cast<EventLog^>(myEnum->Current);
      Console::WriteLine( "Log: {0}", log->Log );
   }
}
using System;
using System.Diagnostics;

class MySample
{
    public static void Main()
    {
        EventLog[] remoteEventLogs;

        remoteEventLogs = EventLog.GetEventLogs("myServer");

        Console.WriteLine("Number of logs on computer: " + remoteEventLogs.Length);

        foreach (EventLog log in remoteEventLogs)
        {
            Console.WriteLine("Log: " + log.Log);
        }
    }
}
Imports System.Diagnostics
Imports System.Threading

Class MySample
    Public Shared Sub Main()
        Dim remoteEventLogs() As EventLog
        
        remoteEventLogs = EventLog.GetEventLogs("myServer")
        
        Console.WriteLine(("Number of logs on computer: " & remoteEventLogs.Length))
        
        Dim log As EventLog
        For Each log In  remoteEventLogs
            Console.WriteLine(("Log: " & log.Log))
        Next log
    End Sub
End Class

Hinweise

Das Array von EventLog -Objekten ist eine Momentaufnahme aller Ereignisprotokolle auf dem Computer, die durch den machineName -Parameter angegeben werden, wenn der Aufruf GetEventLogs von erfolgt. Dies ist keine dynamische Sammlung, daher spiegelt sie nicht das Löschen oder Erstellen von Protokollen in Echtzeit wider. Sie sollten überprüfen, ob ein Protokoll im Array vorhanden ist, bevor Sie es lesen oder schreiben. Das Array enthält in der Regel mindestens drei Protokolle: Anwendung, System und Sicherheit. Wenn Sie benutzerdefinierte Protokolle auf dem angegebenen Computer erstellt haben, werden diese auch im Array angezeigt.

GetEventLogs ist eine static Methode, sodass sie für die EventLog Klasse selbst aufgerufen werden kann. Es ist nicht erforderlich, eine Instanz eines EventLog -Objekts zu erstellen, um einen Aufruf der -Methode zu tätigen.

Um die Liste der Ereignisprotokolle abzurufen, müssen Sie über die entsprechenden Registrierungsberechtigungen verfügen. Diese Berechtigungen sind mit denen identisch, die zum Aufrufen Exists von und SourceExistserforderlich sind.

Weitere Informationen

Gilt für:

GetEventLogs()

Sucht nach allen Ereignisprotokollen auf dem lokalen Computer und erstellt ein Array von EventLog-Objekten, das die Liste enthält.

public:
 static cli::array <System::Diagnostics::EventLog ^> ^ GetEventLogs();
public static System.Diagnostics.EventLog[] GetEventLogs ();
static member GetEventLogs : unit -> System.Diagnostics.EventLog[]
Public Shared Function GetEventLogs () As EventLog()

Gibt zurück

Ein Array vom Typ EventLog, das die auf dem lokalen Computer vorhandenen Protokolle darstellt.

Ausnahmen

Sie verfügen nicht über Lesezugriff auf die Registrierung.

- oder -

Auf dem Computer ist kein Ereignisprotokolldienst vorhanden.

Beispiele

Im folgenden Beispiel werden die auf dem lokalen Computer definierten Ereignisprotokolle aufgelistet und Konfigurationsdetails für jedes Ereignisprotokoll angezeigt.

void DisplayEventLogProperties()
{
   
   // Iterate through the current set of event log files,
   // displaying the property settings for each file.
   array<EventLog^>^eventLogs = EventLog::GetEventLogs();
   System::Collections::IEnumerator^ myEnum = eventLogs->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      EventLog^ e = safe_cast<EventLog^>(myEnum->Current);
      Int64 sizeKB = 0;
      Console::WriteLine();
      Console::WriteLine( "{0}:", e->LogDisplayName );
      Console::WriteLine( "  Log name = \t\t {0}", e->Log );
      Console::WriteLine( "  Number of event log entries = {0}", e->Entries->Count );
      
      // Determine if there is a file for this event log.
      RegistryKey ^ regEventLog = Registry::LocalMachine->OpenSubKey( String::Format( "System\\CurrentControlSet\\Services\\EventLog\\{0}", e->Log ) );
      if ( regEventLog )
      {
         Object^ temp = regEventLog->GetValue( "File" );
         if ( temp != nullptr )
         {
            Console::WriteLine( "  Log file path = \t {0}", temp );
            FileInfo^ file = gcnew FileInfo( temp->ToString() );
            
            // Get the current size of the event log file.
            if ( file->Exists )
            {
               sizeKB = file->Length / 1024;
               if ( (file->Length % 1024) != 0 )
               {
                  sizeKB++;
               }
               Console::WriteLine( "  Current size = \t {0} kilobytes", sizeKB );
            }
         }
         else
         {
            Console::WriteLine( "  Log file path = \t <not set>" );
         }
      }
      
      // Display the maximum size and overflow settings.
      sizeKB = e->MaximumKilobytes;
      Console::WriteLine( "  Maximum size = \t {0} kilobytes", sizeKB );
      Console::WriteLine( "  Overflow setting = \t {0}", e->OverflowAction );
      switch ( e->OverflowAction )
      {
         case OverflowAction::OverwriteOlder:
            Console::WriteLine( "\t Entries are retained a minimum of {0} days.", e->MinimumRetentionDays );
            break;

         case OverflowAction::DoNotOverwrite:
            Console::WriteLine( "\t Older entries are not overwritten." );
            break;

         case OverflowAction::OverwriteAsNeeded:
            Console::WriteLine( "\t If number of entries equals max size limit, a new event log entry overwrites the oldest entry." );
            break;

         default:
            break;
      }
   }
}
static void DisplayEventLogProperties()
{
    // Iterate through the current set of event log files,
    // displaying the property settings for each file.

    EventLog[] eventLogs = EventLog.GetEventLogs();
    foreach (EventLog e in eventLogs)
    {
        Int64 sizeKB = 0;

        Console.WriteLine();
        Console.WriteLine("{0}:", e.LogDisplayName);
        Console.WriteLine("  Log name = \t\t {0}", e.Log);

        Console.WriteLine("  Number of event log entries = {0}", e.Entries.Count.ToString());

        // Determine if there is an event log file for this event log.
        RegistryKey regEventLog = Registry.LocalMachine.OpenSubKey("System\\CurrentControlSet\\Services\\EventLog\\" + e.Log);
        if (regEventLog != null)
        {
            Object temp = regEventLog.GetValue("File");
            if (temp != null)
            {
                Console.WriteLine("  Log file path = \t {0}", temp.ToString());
                FileInfo file = new FileInfo(temp.ToString());

                // Get the current size of the event log file.
                if (file.Exists)
                {
                    sizeKB = file.Length / 1024;
                    if ((file.Length % 1024) != 0)
                    {
                        sizeKB++;
                    }
                    Console.WriteLine("  Current size = \t {0} kilobytes", sizeKB.ToString());
                }
            }
            else
            {
                Console.WriteLine("  Log file path = \t <not set>");
            }
        }

        // Display the maximum size and overflow settings.

        sizeKB = e.MaximumKilobytes;
        Console.WriteLine("  Maximum size = \t {0} kilobytes", sizeKB.ToString());
        Console.WriteLine("  Overflow setting = \t {0}", e.OverflowAction.ToString());

        switch (e.OverflowAction)
        {
            case OverflowAction.OverwriteOlder:
                Console.WriteLine("\t Entries are retained a minimum of {0} days.",
                    e.MinimumRetentionDays);
                break;
            case OverflowAction.DoNotOverwrite:
                Console.WriteLine("\t Older entries are not overwritten.");
                break;
            case OverflowAction.OverwriteAsNeeded:
                Console.WriteLine("\t If number of entries equals max size limit, a new event log entry overwrites the oldest entry.");
                break;
            default:
                break;
        }
    }
}
Shared Sub DisplayEventLogProperties()

   ' Iterate through the current set of event log files,
   ' displaying the property settings for each file.
   Dim eventLogs As EventLog() = EventLog.GetEventLogs()
   
   Dim e As EventLog
   For Each e In  eventLogs
      Dim sizeKB As Int64 = 0
      
      Console.WriteLine()
      Console.WriteLine("{0}:", e.LogDisplayName)
      Console.WriteLine("  Log name = " + ControlChars.Tab _
                          + ControlChars.Tab + " {0}", e.Log)

      Console.WriteLine("  Number of event log entries = {0}", e.Entries.Count.ToString())
      
      ' Determine if there is an event log file for this event log.
      Dim regEventLog As RegistryKey
      regEventLog = Registry.LocalMachine.OpenSubKey( _
             ("System\CurrentControlSet\Services\EventLog\" + e.Log))

      If Not (regEventLog Is Nothing) Then

         Dim temp As Object = regEventLog.GetValue("File")
         If Not (temp Is Nothing) Then

            Console.WriteLine("  Log file path = " + ControlChars.Tab _
                                  + " {0}", temp.ToString())
            Dim file As New FileInfo(temp.ToString())
            
            ' Get the current size of the event log file.
            If file.Exists Then
               sizeKB = file.Length / 1024
               If file.Length Mod 1024 <> 0 Then
                  sizeKB += 1
               End If
               Console.WriteLine("  Current size = " + ControlChars.Tab _
                          + " {0} kilobytes", sizeKB.ToString())
            End If
         Else
            Console.WriteLine("  Log file path = " + ControlChars.Tab _
                             + " <not set>")
         End If
      End If
      
      ' Display the maximum size and overflow settings.
      sizeKB = e.MaximumKilobytes
      Console.WriteLine("  Maximum size = " + ControlChars.Tab _
                         + " {0} kilobytes", sizeKB.ToString())
      Console.WriteLine("  Overflow setting = " + ControlChars.Tab _
                         + " {0}", e.OverflowAction.ToString())
      
      Select Case e.OverflowAction
         Case OverflowAction.OverwriteOlder
            Console.WriteLine(ControlChars.Tab + _
                 " Entries are retained a minimum of {0} days.", _
                 e.MinimumRetentionDays)
         Case OverflowAction.DoNotOverwrite
            Console.WriteLine(ControlChars.Tab + _
                 " Older entries are not overwritten.")
         Case OverflowAction.OverwriteAsNeeded
            Console.WriteLine(ControlChars.Tab + _
                 " If number of entries equals max size limit, a new event log entry overwrites the oldest entry.")
         Case Else
      End Select

   Next e

End Sub

Hinweise

Das Array von EventLog -Objekten ist eine Momentaufnahme aller Ereignisprotokolle auf dem lokalen Computer, wenn der Aufruf von GetEventLogs erfolgt. Dies ist keine dynamische Sammlung, daher spiegelt sie nicht das Löschen oder Erstellen von Protokollen in Echtzeit wider. Sie sollten überprüfen, ob ein Protokoll im Array vorhanden ist, bevor Sie es lesen oder schreiben. Das Array enthält in der Regel mindestens drei Protokolle: Anwendung, System und Sicherheit. Wenn Sie benutzerdefinierte Protokolle auf dem lokalen Computer erstellt haben, werden diese auch im Array angezeigt.

Um die Liste der Ereignisprotokolle abzurufen, müssen Sie über die entsprechenden Registrierungsberechtigungen verfügen. Diese Berechtigungen sind mit denen identisch, die zum Aufrufen Exists von und SourceExistserforderlich sind.

Weitere Informationen

Gilt für: