Compartir a través de


EventLog.GetEventLogs Método

Definición

Crea una matriz de los registros de eventos.

Sobrecargas

GetEventLogs(String)

Busca todos los registros de eventos en el equipo dado y crea una matriz de objetos EventLog que contiene la lista.

GetEventLogs()

Busca todos los registros de eventos en el equipo local y crea una matriz de objetos EventLog que contiene la lista.

GetEventLogs(String)

Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs

Busca todos los registros de eventos en el equipo dado y crea una matriz de objetos EventLog que contiene la lista.

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

Parámetros

machineName
String

Equipo en el que buscar registros de eventos.

Devoluciones

Matriz de tipo EventLog que representa los registros del equipo dado.

Excepciones

El parámetro machineName no es un nombre de equipo válido.

No se dispone de acceso de lectura al Registro.

o bien

No existe ningún servicio de registro de eventos en el equipo.

Ejemplos

En el ejemplo siguiente se obtiene una lista de registros en el equipo "myServer". A continuación, genera el nombre de cada registro.

#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

Comentarios

La matriz de objetos es una instantánea de EventLog todos los registros de eventos en el equipo especificado por el machineName parámetro cuando se realiza la llamada a GetEventLogs . Esta no es una colección dinámica, por lo que no refleja la eliminación ni la creación de registros en tiempo real. Debe comprobar que existe un registro en la matriz antes de leerlo o escribir en ella. La matriz suele incluir al menos tres registros: Aplicación, Sistema y Seguridad. Si ha creado registros personalizados en el equipo especificado, también aparecerán en la matriz.

GetEventLogs es un static método, por lo que se puede llamar a en la EventLog propia clase. No es necesario crear una instancia de un EventLog objeto para realizar una llamada al método .

Para recuperar la lista de registros de eventos, debe tener los permisos del Registro adecuados. Estos permisos son idénticos a los necesarios para llamar Exists a y SourceExists.

Consulte también

Se aplica a

GetEventLogs()

Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs

Busca todos los registros de eventos en el equipo local y crea una matriz de objetos EventLog que contiene la lista.

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

Devoluciones

Matriz de tipo EventLog que representa los registros del equipo local.

Excepciones

No se dispone de acceso de lectura al Registro.

o bien

No existe ningún servicio de registro de eventos en el equipo.

Ejemplos

En el ejemplo siguiente se enumeran los registros de eventos definidos en el equipo local y se muestran los detalles de configuración de cada registro de eventos.

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

Comentarios

La matriz de objetos es una instantánea de EventLog todos los registros de eventos en el equipo local cuando se realiza la llamada a GetEventLogs . Esta no es una colección dinámica, por lo que no refleja la eliminación ni la creación de registros en tiempo real. Debe comprobar que existe un registro en la matriz antes de leerlo o escribir en ella. La matriz suele incluir al menos tres registros: Aplicación, Sistema y Seguridad. Si ha creado registros personalizados en el equipo local, también aparecerán en la matriz.

Para recuperar la lista de registros de eventos, debe tener los permisos del Registro adecuados. Estos permisos son idénticos a los necesarios para llamar Exists a y SourceExists.

Consulte también

Se aplica a