EventLog.GetEventLogs Metod

Definition

Skapar en matris med händelseloggarna.

Överlagringar

Name Description
GetEventLogs(String)

Söker efter alla händelseloggar på den angivna datorn och skapar en matris med EventLog objekt som innehåller listan.

GetEventLogs()

Söker efter alla händelseloggar på den lokala datorn och skapar en matris med EventLog objekt som innehåller listan.

GetEventLogs(String)

Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs

Söker efter alla händelseloggar på den angivna datorn och skapar en matris med EventLog objekt som innehåller listan.

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

Parametrar

machineName
String

Den dator där du vill söka efter händelseloggar.

Returer

En matris av typen EventLog som representerar loggarna på den angivna datorn.

Undantag

Parametern machineName är ett ogiltigt datornamn.

Du har inte läsbehörighet till registret.

-eller-

Det finns ingen händelseloggtjänst på datorn.

Exempel

I följande exempel hämtas en lista över loggar på datorn "myServer". Sedan matas namnet på varje logg ut.

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

Kommentarer

Matrisen med EventLog objekt är en ögonblicksbild av alla händelseloggar på datorn som anges av parametern machineName när anropet till GetEventLogs görs. Det här är inte en dynamisk samling, så den återspeglar inte borttagningen eller skapandet av loggar i realtid. Du bör kontrollera att det finns en logg i matrisen innan du läser eller skriver till den. Matrisen innehåller vanligtvis minst tre loggar: Program, System och Säkerhet. Om du har skapat anpassade loggar på den angivna datorn visas de även i matrisen.

GetEventLogs är en static metod, så den kan anropas på EventLog själva klassen. Det är inte nödvändigt att skapa en instans av ett EventLog objekt för att göra ett anrop till metoden.

Om du vill hämta listan över händelseloggar måste du ha rätt registerbehörigheter. Dessa behörigheter är identiska med de som krävs för att anropa Exists och SourceExists.

Se även

Gäller för

GetEventLogs()

Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs
Källa:
EventLog.cs

Söker efter alla händelseloggar på den lokala datorn och skapar en matris med EventLog objekt som innehåller listan.

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

Returer

En matris av typen EventLog som representerar loggarna på den lokala datorn.

Undantag

Du har inte läsbehörighet till registret.

-eller-

Det finns ingen händelseloggtjänst på datorn.

Exempel

I följande exempel räknas de händelseloggar som definierats på den lokala datorn upp och konfigurationsinformation visas för varje händelselogg.

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

Kommentarer

Matrisen med EventLog objekt är en ögonblicksbild av alla händelseloggar på den lokala datorn när anropet till GetEventLogs görs. Det här är inte en dynamisk samling, så den återspeglar inte borttagningen eller skapandet av loggar i realtid. Du bör kontrollera att det finns en logg i matrisen innan du läser eller skriver till den. Matrisen innehåller vanligtvis minst tre loggar: Program, System och Säkerhet. Om du har skapat anpassade loggar på den lokala datorn visas de även i matrisen.

Om du vill hämta listan över händelseloggar måste du ha rätt registerbehörigheter. Dessa behörigheter är identiska med de som krävs för att anropa Exists och SourceExists.

Se även

Gäller för