다음을 통해 공유


EventLog.GetEventLogs 메서드

정의

이벤트 로그의 배열을 만듭니다.

오버로드

GetEventLogs(String)

지정한 컴퓨터에서 모든 이벤트 로그를 검색하여 목록을 포함하는 EventLog 개체의 배열을 만듭니다.

GetEventLogs()

로컬 컴퓨터에서 모든 이벤트 로그를 검색하여 목록을 포함하는 EventLog 개체의 배열을 만듭니다.

GetEventLogs(String)

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

지정한 컴퓨터에서 모든 이벤트 로그를 검색하여 목록을 포함하는 EventLog 개체의 배열을 만듭니다.

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

매개 변수

machineName
String

이벤트 로그를 검색할 컴퓨터입니다.

반환

지정한 컴퓨터의 로그를 나타내는 EventLog 형식의 배열입니다.

예외

machineName 매개 변수가 잘못된 컴퓨터 이름인 경우

레지스트리에 대한 읽기 권한이 없는 경우

또는

컴퓨터에 이벤트 로그 서비스가 없는 경우

예제

다음 예제에서는 "myServer" 컴퓨터의 로그 목록을 가져옵니다. 그런 다음 각 로그의 이름을 출력합니다.

#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

설명

개체의 EventLog 배열은 에 대한 호출 GetEventLogs 이 이루어질 때 매개 변수로 지정된 machineName 컴퓨터의 모든 이벤트 로그 스냅샷. 동적 컬렉션이 아니므로 로그 삭제 또는 생성을 실시간으로 반영하지 않습니다. 배열을 읽거나 쓰기 전에 배열의 로그가 있는지 확인해야 합니다. 배열에는 일반적으로 로그를 3 개 이상 포함 합니다: 애플리케이션, 시스템 및 보안. 지정된 컴퓨터에서 사용자 지정 로그를 만든 경우 배열에도 표시됩니다.

GetEventLogsstatic 메서드이므로 클래스 자체에서 EventLog 호출할 수 있습니다. 메서드를 호출하기 위해 개체의 EventLog instance 만들 필요는 없습니다.

이벤트 로그 목록을 검색하려면 적절한 레지스트리 권한이 있어야 합니다. 이러한 권한은 및 를 호출 Exists 하는 데 필요한 권한과 SourceExists동일합니다.

추가 정보

적용 대상

GetEventLogs()

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

로컬 컴퓨터에서 모든 이벤트 로그를 검색하여 목록을 포함하는 EventLog 개체의 배열을 만듭니다.

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

반환

로컬 컴퓨터의 로그를 나타내는 EventLog 형식의 배열입니다.

예외

레지스트리에 대한 읽기 권한이 없는 경우

또는

컴퓨터에 이벤트 로그 서비스가 없는 경우

예제

다음 예제에서는 로컬 컴퓨터에 정의된 이벤트 로그를 열거하고 각 이벤트 로그에 대한 구성 세부 정보를 표시합니다.

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

설명

개체의 EventLog 배열은 에 대한 호출 GetEventLogs 이 이루어질 때 로컬 컴퓨터의 모든 이벤트 로그의 스냅샷. 동적 컬렉션이 아니므로 로그 삭제 또는 생성을 실시간으로 반영하지 않습니다. 배열을 읽거나 쓰기 전에 배열의 로그가 있는지 확인해야 합니다. 배열에는 일반적으로 로그를 3 개 이상 포함 합니다: 애플리케이션, 시스템 및 보안. 로컬 컴퓨터에서 사용자 지정 로그를 만든 경우 배열에도 표시됩니다.

이벤트 로그 목록을 검색하려면 적절한 레지스트리 권한이 있어야 합니다. 이러한 권한은 및 를 호출 Exists 하는 데 필요한 권한과 SourceExists동일합니다.

추가 정보

적용 대상