次の方法で共有


EventLog.GetEventLogs メソッド (String)

指定したコンピュータ上のすべてのイベント ログを検索し、リストを格納する EventLog オブジェクトの配列を作成します。

Overloads Public Shared Function GetEventLogs( _
   ByVal machineName As String _) As EventLog()
[C#]
public static EventLog[] GetEventLogs(stringmachineName);
[C++]
public: static EventLog* GetEventLogs(String* machineName) [];
[JScript]
public static function GetEventLogs(
   machineName : String) : EventLog[];

パラメータ

  • machineName
    イベント ログの検索対象となるコンピュータ。

戻り値

指定したコンピュータ上のログを表す EventLog 型の配列。

例外

例外の種類 条件
ArgumentException machineName パラメータに無効なコンピュータ名が指定されています。
SystemException レジストリの読み取りアクセス許可がありません。

または

コンピュータ上にイベント ログ サービスがありません。

解説

EventLog オブジェクトの配列は、 GetEventLogs を呼び出した時点での、 machineName で指定されたコンピュータに存在するすべてのイベント ログのスナップショットです。これは動的なコレクションではないため、ログの削除や作成はリアルタイムには反映されません。配列内のログの読み取りや書き込みを行う前に、配列内にログが存在するかどうかを確認してください。通常、配列には少なくともアプリケーション ログ、システム ログ、セキュリティ ログの 3 つのログが格納されています。指定したコンピュータにカスタム ログが作成されている場合は、それらのカスタム ログも配列に表示されます。

GetEventLogs は静的 (Visual Basic では Shared) メソッドであるため、その EventLog クラス自体で呼び出すことができます。このメソッドを呼び出すために EventLog のインスタンスを作成する必要はありません。

イベント ログのリストを取得するには、適切なレジストリ アクセス許可を持っている必要があります。これらのアクセス許可は、 ExistsSourceExists を呼び出すときに必要なアクセス許可と同じです。

使用例

[Visual Basic, C#, C++] コンピュータ "myServer" 上のログのリストを取得する例を次に示します。その後で、各ログの名前を出力します。

 
Imports System
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 ' Main
End Class ' MySample

[C#] 
using System;
using System.Diagnostics;
using System.Threading;
              
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);
        }                                                                      
    }       
}
   

[C++] 
#using <mscorlib.dll>
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;

int main(){

    EventLog* remoteEventLogs[];

    remoteEventLogs = EventLog::GetEventLogs(S"myServer");

    Console::WriteLine(S"Number of logs on computer: {0}", __box(remoteEventLogs->Length));

    System::Collections::IEnumerator* myEnum = remoteEventLogs->GetEnumerator();
    while (myEnum->MoveNext())
    {
        EventLog* log = __try_cast<EventLog*>(myEnum->Current);
        Console::WriteLine(S"Log: {0}", log->Log);
    }                                                                      
}       

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows NT Server 4.0, Windows NT Workstation 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

.NET Framework セキュリティ:

参照

EventLog クラス | EventLog メンバ | System.Diagnostics 名前空間 | EventLog.GetEventLogs オーバーロードの一覧 | Exists | Log | MachineName