EventLog.GetEventLogs Methode

Definitie

Hiermee maakt u een matrix van de gebeurtenislogboeken.

Overloads

Name Description
GetEventLogs(String)

Zoekt naar alle gebeurtenislogboeken op de opgegeven computer en maakt een matrix met EventLog objecten die de lijst bevatten.

GetEventLogs()

Zoekt naar alle gebeurtenislogboeken op de lokale computer en maakt een matrix met EventLog objecten die de lijst bevatten.

GetEventLogs(String)

Zoekt naar alle gebeurtenislogboeken op de opgegeven computer en maakt een matrix met EventLog objecten die de lijst bevatten.

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()

Parameters

machineName
String

De computer waarop moet worden gezocht naar gebeurtenislogboeken.

Retouren

Een matrix van het type EventLog dat de logboeken op de opgegeven computer vertegenwoordigt.

Uitzonderingen

De machineName parameter is een ongeldige computernaam.

U hebt geen leestoegang tot het register.

– of –

Er is geen gebeurtenislogboekservice op de computer.

Voorbeelden

In het volgende voorbeeld wordt een lijst met logboeken op de computer myServer opgehaald. Vervolgens wordt de naam van elk logboek uitgevoerd.

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

Opmerkingen

De matrix van EventLog objecten is een momentopname van alle gebeurtenislogboeken op de computer die is opgegeven door de machineName parameter wanneer de aanroep wordt GetEventLogs gedaan. Dit is geen dynamische verzameling, dus deze weerspiegelt niet de verwijdering of het maken van logboeken in realtime. Controleer of er een logboek in de matrix bestaat voordat u ernaar leest of schrijft. De matrix bevat meestal ten minste drie logboeken: Toepassing, Systeem en Beveiliging. Als u aangepaste logboeken op de opgegeven computer hebt gemaakt, worden deze ook weergegeven in de matrix.

GetEventLogs is een static methode, zodat deze op de EventLog klasse zelf kan worden aangeroepen. Het is niet nodig om een exemplaar van een EventLog object te maken om een aanroep naar de methode te maken.

Als u de lijst met gebeurtenislogboeken wilt ophalen, moet u over de juiste registermachtigingen beschikken. Deze machtigingen zijn identiek aan de machtigingen die nodig zijn om aan te roepen Exists en SourceExists.

Zie ook

Van toepassing op

GetEventLogs()

Zoekt naar alle gebeurtenislogboeken op de lokale computer en maakt een matrix met EventLog objecten die de lijst bevatten.

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()

Retouren

Een matrix van het type EventLog dat de logboeken op de lokale computer vertegenwoordigt.

Uitzonderingen

U hebt geen leestoegang tot het register.

– of –

Er is geen gebeurtenislogboekservice op de computer.

Voorbeelden

In het volgende voorbeeld worden de gebeurtenislogboeken opgesomd die zijn gedefinieerd op de lokale computer en worden configuratiegegevens weergegeven voor elk gebeurtenislogboek.

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

Opmerkingen

De matrix met EventLog objecten is een momentopname van alle gebeurtenislogboeken op de lokale computer wanneer de aanroep wordt GetEventLogs uitgevoerd. Dit is geen dynamische verzameling, dus deze weerspiegelt niet de verwijdering of het maken van logboeken in realtime. Controleer of er een logboek in de matrix bestaat voordat u ernaar leest of schrijft. De matrix bevat meestal ten minste drie logboeken: Toepassing, Systeem en Beveiliging. Als u aangepaste logboeken op de lokale computer hebt gemaakt, worden deze ook weergegeven in de matrix.

Als u de lijst met gebeurtenislogboeken wilt ophalen, moet u over de juiste registermachtigingen beschikken. Deze machtigingen zijn identiek aan de machtigingen die nodig zijn om aan te roepen Exists en SourceExists.

Zie ook

Van toepassing op