EventLog クラスとは? わかりやすく解説

EventLog クラス

Windowsイベント ログとの対話実現します

名前空間: System.Diagnostics
アセンブリ: System (system.dll 内)
構文構文

Public Class EventLog
    Inherits Component
    Implements ISupportInitialize
public class EventLog : Component, ISupportInitialize
public ref class EventLog : public
 Component, ISupportInitialize
public class EventLog extends Component implements
 ISupportInitialize
public class EventLog extends
 Component implements ISupportInitialize
解説解説

EventLog使用すると、重要なソフトウェア イベントまたはハードウェア イベントについての情報記録する Windowsイベント ログへのアクセスカスタマイズ可能になりますEventLog使用して既存ログからの読み取りログへのエントリ書き込みイベント ソース作成削除ログ エントリへの応答などを行うことができますまた、イベント ソース作成時に新しログ作成することもできます

メモ重要 :

EventLog オブジェクト作成しエントリ書き込んで信頼性一部しか確認されていないコードEventLog オブジェクトを渡すと、セキュリティ上の問題発生することがあります信頼性の低いコードには、EventLogEntry オブジェクトや EventLogEntryCollection オブジェクトなどのイベント ログ オブジェクト渡さないください

メモ重要 :

イベント ソース作成または削除する場合、名前付ミューテックス使用して基になるコード同期する必要があります。高度な特権付与されアプリケーションが名前付ミューテックスロックしている場合イベント ソース作成または削除しようとすると、ロック解除されるまでアプリケーション応答停止します。この問題回避するために、信頼関係のないコードには UnmanagedCode アクセス許可付与しないでくださいまた、UnmanagedCode アクセス許可使用すると、他のアクセス許可バイパスできる可能性もあるため、信頼度の高いコードにだけこのアクセス許可付与する必要があります

ログ読み取るには、EventLogLog 名と MachineName (サーバー コンピュータ名) を指定しますソース必要なのはログ書き込む場合だけであるため、Source指定する要はありません。Entries メンバには、自動的にイベント ログエントリ リスト設定されます。

メモメモ

Log/MachineNameペア指定してログ接続している場合は、MachineName指定する要はありません。MachineName指定しなかった場合は、ローカル コンピュータ "." が想定されます。

イベント ログ書き込む場合は、イベント Source指定するか、または作成する必要があります新しイベント ソース作成するには、コンピュータ管理者権限が必要です。Source は、アプリケーション有効なソースとしてイベント ログ登録しますSource は、同時に 1 つログ書き込むときだけ使用できますSource には任意のランダムな文字列指定できますが、コンピュータの他のソースとは別の一意の名前である必要があります通常ソース名には、アプリケーション名またはその他の識別文字列使用します重複する Source 値を作成しようとすると、例外スローさます。ただし、単一イベント ログ複数ソース関連付けることは可能です。

アプリケーションおよびサービスは、アプリケーション ログまたはカスタム ログ書き込みますデバイス ドライバは、システム ログ書き込みますLog プロパティ明示的に設定しない場合イベント ログ既定アプリケーション ログ設定されます。

イベントイベント ログ書き込むには、WriteEvent と WriteEntry を使用しますイベント書き込むには、イベント ソース指定することが必要です。イベント ソースは、そのソースを持つ最初エントリ書き込む前に作成および構成しておく必要があります

アプリケーションのインストール時に新しイベント ソース作成します。これにより、オペレーティング システムが、登録されイベント ソースその構成の一覧を更新するだけの時間的余裕生まれますイベント ソースの一覧がオペレーティング システムにより更新されていないとき、新しソースイベント書き込もうとすると、書き込み操作失敗します新しソースは、EventLogInstaller または CreateEventSource メソッド使用して構成できます新しイベント ソース作成するには、コンピュータ管理者権限が必要です。

ソース同時に 1 つログだけに登録できます。ただし、アプリケーションでは、複数イベント ログ書き込むために複数ソース使用される場合あります。たとえば、アプリケーションには、異なイベント ログまたは異なリソース ファイル用に構成され複数ソース必要になる場合あります既存ソース構成情報変更するには、一度ソース削除してから、新し構成作成し直す必要があります。他のアプリケーションまたはコンポーネント既存ソース使用している場合既存ソース削除するではなく更新され構成新しソース作成します

イベント カテゴリおよびメッセージ文字列用のローカライズされたリソースを持つイベント ソースを登録できますアプリケーションは、実際文字列値を指定するではなくリソース識別子使用してイベント ログ エントリ書き込むことができますリソース ファイル使用したソース構成については、EventLogInstaller クラスおよび EventSourceCreationData クラストピック参照してください

アプリケーション文字列値をイベント ログ直接書き込む場合は、ソースリソース ファイルプロパティ設定する要はありません。ソースは、ローカライズされたエントリ書き込むか、または直接文字列書き込むように構成されている必要がありますアプリケーションリソース識別子文字列値の両方使用してエントリ書き込む場合2 つ異なソース登録する必要があります。たとえば、複数リソース ファイルを持つ 1 つソース構成してから、WriteEvent メソッドでこのソース使用しリソース識別子によってエントリイベント ログ書き込みます次にリソース ファイル使わず作成した別のソースWriteEntry メソッド使用し、そのソース使って文字列直接イベント ログ書き込みます

イベント書き込む場合は、少なくともメッセージ文字列またはメッセージ文字列リソース識別子指定する必要があります他のイベント プロパティ省略可能です。省略可能なイベント設定の例を次に示します。EventLogEntryType を設定してイベント ビューアエントリ表示するアイコン指定できますアプリケーションイベントフィルタカテゴリ使用する場合は、イベントカテゴリ識別子指定できます追加情報指定したイベント関連付ける必要がある場合は、イベント エントリバイナリ データ追加できます

EventLog クラスは、個別イベント ログとそのエントリへのアクセス提供するだけではなくすべてのイベント ログコレクションへのアクセス提供しますEventLogstatic メンバ使用すると、ログ削除ログ リスト取得ソース作成または削除特定のソースコンピュータに既に存在するかどうか確認などを行うことができます

アプリケーション ログシステム ログセキュリティ ログ3 つの既定イベント ログありますActive Directory など、インストールされた他のアプリケーションサービスでは追加イベント ログ使用できますEventLog使用してカスタム イベント ログ作成できますカスタム イベント ログサーバーイベント ビューア表示できますイベント ビューアイベント ログローカライズされた名前を表示させるには、RegisterDisplayName メソッド使用します最大ログ サイズ達した場合イベント ログ動作構成するには、ModifyOverflowPolicy メソッド使用します

イベントログディスク容量プロセッサ時間その他のシステム リソース消費しますこのため必要な情報だけをログすることが重要です。パフォーマンスの低下避けるために、イベント ログ呼び出しメインコード パスではなくエラー パス配置することをお勧めます。

EventLogインスタンス初期プロパティ値の一覧については、EventLog コンストラクタトピック参照してください

Windows 98, Windows Millennium Edition プラットフォームメモ : イベント ログは、Windows 98 または Windows Millennium Edition (Me) ではサポートされていません。

使用例使用例

ソース存在しない場合MySource作成しイベント ログ MyNewLogエントリ書き込む例を次に示します

Option Explicit
Option Strict

Imports System
Imports System.Diagnostics
Imports System.Threading

Class MySample
    Public Shared Sub Main()
        
        ' Create the source, if it does not already exist.
        If Not EventLog.SourceExists("MySource")
 Then
            EventLog.CreateEventSource("MySource",
 "MyNewLog")
            Console.WriteLine("CreatingEventSource")
        End If
        
        ' Create an EventLog instance and assign its source.
        Dim myLog As New
 EventLog()
        myLog.Source = "MySource"
        
        ' Write an informational entry to the event log.    
        myLog.WriteEntry("Writing to event log.")
    End Sub 'Main 
End Class 'MySample
using System;
using System.Diagnostics;
using System.Threading;
              
class MySample{

    public static void Main(){
    
        // Create the source, if it does not already exist.
        if(!EventLog.SourceExists("MySource")){
            EventLog.CreateEventSource("MySource", "MyNewLog");
            Console.WriteLine("CreatingEventSource");
        }
                
        // Create an EventLog instance and assign its source.
        EventLog myLog = new EventLog();
        myLog.Source = "MySource";
        
        // Write an informational entry to the event log.    
        myLog.WriteEntry("Writing to event log.");
        
    }
}
   
#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;
int main()
{
   
   // Create the source, if it does not already exist.
   if (  !EventLog::SourceExists( "MySource" ) )
   {
      EventLog::CreateEventSource( "MySource", "MyNewLog" );
      Console::WriteLine( "CreatingEventSource" );
   }

   
   // Create an EventLog instance and assign its source.
   EventLog^ myLog = gcnew EventLog;
   myLog->Source = "MySource";
   
   // Write an informational entry to the event log.    
   myLog->WriteEntry( "Writing to event log." );
}

import System.*;
import System.Diagnostics.*;
import System.Threading.*;

class MySample
{
    public static void main(String[]
 args)
    {
        // Create the source, if it does not already exist.
        if (!(EventLog.SourceExists("MySource"))) {
            EventLog.CreateEventSource("MySource", "MyNewLog");
            Console.WriteLine("CreatingEventSource");
        }

        // Create an EventLog instance and assign its source.
        EventLog myLog = new EventLog();
        myLog.set_Source("MySource");

        // Write an informational entry to the event log.    
        myLog.WriteEntry("Writing to event log.");
    } //main 
} //MySample
継承階層継承階層
System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
      System.Diagnostics.EventLog
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「EventLog クラス」の関連用語

EventLog クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



EventLog クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS