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

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > EventSourceCreationData クラスの意味・解説 

EventSourceCreationData クラス

メモ : このクラスは、.NET Framework version 2.0新しく追加されたものです。

ローカル コンピュータまたはリモート コンピュータイベント ログ ソース作成するために使用される構成設定表します

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

Public Class EventSourceCreationData
Dim instance As EventSourceCreationData
public class EventSourceCreationData
public ref class EventSourceCreationData
public class EventSourceCreationData
public class EventSourceCreationData
解説解説

ローカライズされたエントリをイベント ログ書き込むために新しソース構成するには、EventSourceCreationData クラス使用しますイベント ログから読み込む場合、このクラス使用する要はありません。

このクラスは、新しイベント ソースおよび関連するイベント ログ構成設定定義します関連するイベント ログは、ローカル コンピュータまたはリモート コンピュータ配置できますローカル コンピュータ新規または既存イベント ログ新しソース作成するには、EventSourceCreationData の LogName プロパティおよび Source プロパティ設定して、EventLog.CreateEventSource(EventSourceCreationData) メソッド呼び出します。このメソッドは、Source プロパティ指定したイベント ソース作成してLogName指定されイベント ログイベント ソースとして登録します。この動作は、EventLogInstaller クラス使用してイベント ログイベント ソース登録することに似てます。

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

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

既存イベント ログまたは新しイベント ログイベント ソース作成できます新規イベント ログに対して新しソース作成すると、システムは、そのログソース登録しますが、ログ最初のエントリが書き込まれるまで作成されません。

ソースは、同時に 1 つイベント ログだけに書き込むことができます。ただし、アプリケーション複数ソース使用して複数イベント ログ書き込むことができます。たとえば、アプリケーションには、異なイベント ログまたは異なリソース ファイル用に構成され複数ソース必要になる場合あります

既存ソース構成情報変更するには、一度ソース削除してから、新し構成作成し直す必要があります。他のアプリケーションまたはコンポーネント既存ソース使用している場合既存ソース削除するではなく更新され構成新しソース作成します

イベント カテゴリおよびメッセージ文字列ローカライズされたリソースイベント ソースを登録できますアプリケーションは、実際文字列指定するではなくリソース識別子使用してイベント ログ エントリを書き込むことができますイベント ビューアでは、リソース識別子使用してローカライズされたリソース ファイルから、現在の言語設定に基づく対応する文字列検索して表示させることができますイベント カテゴリメッセージ、およびパラメータ挿入文字列個別ファイル登録することも、この 3 種類の文字列に同じリソース ファイル登録することもできますローカライズされたエントリをイベント ログ書き込むようにソース構成するには、CategoryCount、CategoryResourceFile、MessageResourceFile、および ParameterResourceFile の各プロパティ使用しますアプリケーション文字列値を直接イベント ログ書き込む場合、これらのプロパティ設定する要はありません。

ソースは、ローカライズされたエントリを書き込むか、または直接文字列書き込むように構成されている必要がありますWriteEntry メソッドは、指定され文字列イベント ログ直接書き込みますローカライズされたメッセージ リソース ファイル使用しません。ローカライズされたメッセージ リソース ファイル使用してイベント書き込むには、WriteEvent メソッド使用します

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

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

使用例使用例

コマンド ライン引数からイベント ソース構成プロパティ設定するコード例次に示します入力引数は、イベント ソース名、イベント ログ名、コンピュータ名、およびイベント メッセージ リソース ファイル指定します。このコード例は、ソース既存イベント ソース競合していないことを確認してから、指定されイベント ログ新しイベント ソース作成します

Imports System
Imports System.Globalization
Imports System.Diagnostics

Namespace EventLogSamples
    Class CreateSourceSample

        Public Shared Sub
 Main(ByVal args() As String)
        
            Dim mySourceData As EventSourceCreationData
 = new EventSourceCreationData("",
 "")
            Dim registerSource As Boolean
 = True

            ' Process input parameters.
            If args.Length > 0
                ' Require at least the source name.

                mySourceData.Source = args(0)

                If args.Length > 1
   
                    mySourceData.LogName = args(1)
    
                End If
                If args.Length > 2
   
                    mySourceData.MachineName = args(2)
    
                End If
                If args.Length > 3 AndAlso
 args(3).Length > 0
   
                    mySourceData.MessageResourceFile = args(3)
    
                End If

            Else 
                ' Display a syntax help message.
                Console.WriteLine("Input:")
                Console.WriteLine(" source [event log] [machine
 name] [resource file]")

                registerSource = False
            End If

            ' Set defaults for parameters missing input.
            If mySourceData.MachineName.Length = 0
            
                ' Default to the local computer.
                mySourceData.MachineName = "."
            End If
            If mySourceData.LogName.Length = 0
                ' Default to the Application log.
                mySourceData.LogName = "Application"
            End If

            ' Determine if the source exists on the specified computer.
            If Not EventLog.SourceExists(mySourceData.Source,
 _
                                       mySourceData.MachineName)
                ' The source does not exist.  

                ' Verify that the message file exists
                ' and the event log is local.
                If mySourceData.MessageResourceFile <> Nothing
 AndAlso _
                   mySourceData.MessageResourceFile.Length > 0
                   
                    If mySourceData.MachineName = "."
                        If Not System.IO.File.Exists(mySourceData.MessageResourceFile)

                            Console.WriteLine("File {0} not found
 - message file not set for source.", _
                                mySourceData.MessageResourceFile)
                            registerSource = False
                        End If
                    Else
                        ' For simplicity, do not allow setting the message
                        ' file for a remote event log.  To set the message
                        ' for a remote event log, and for source registration
,
                        ' the file path should be specified with system-wide
                        ' environment variables that are valid on the
 remote
                        ' computer, such as
                        ' "%SystemRoot%\system32\myresource.dll".

                        Console.WriteLine("Message resource file
 ignored for remote event log.")
                        registerSource = False

                    End If
                End If
            Else 
                ' Do not register the source, it already exists.
                registerSource = False

                ' Get the event log corresponding to the existing source.
                Dim sourceLog As string
                sourceLog = EventLog.LogNameFromSourceName(mySourceData.Source, _
                                mySourceData.MachineName)

                ' Determine if the event source is registered for the
 
                ' specified log.

                If sourceLog.ToUpper(CultureInfo.InvariantCulture)
 <> mySourceData.LogName.ToUpper(CultureInfo.InvariantCulture)

                    ' An existing source is registered 
                    ' to write to a different event log.

                    Console.WriteLine("Warning: source {0} is
 already registered to write to event log {1}", _
                        mySourceData.Source, sourceLog)
                Else 
                    ' The source is already registered 
                    ' to write to the specified event log.

                    Console.WriteLine("Source {0} already registered
 to write to event log {1}", _
                        mySourceData.Source, sourceLog)

                End If
            End If

            If registerSource
                ' Register the new event source for the specified event
 log.

                Console.WriteLine("Registering new source {0}
 for event log {1}.", _
                    mySourceData.Source, mySourceData.LogName)
                EventLog.CreateEventSource(mySourceData)
                Console.WriteLine("Event source was registered
 successfully!")
            End If

        End Sub 'Main
    End Class 'CreateSourceSample
End Namespace 'EventLogSamples
using System;
using System.Globalization;
using System.Diagnostics;

namespace EventLogSamples
{
    class CreateSourceSample
    {
        [STAThread]
        static void Main(string[]
 args)
        {
            EventSourceCreationData mySourceData = new EventSourceCreationData("",
 "");
            bool registerSource = true;

            // Process input parameters.
            if (args.Length > 0)
            {
                // Require at least the source name.

                mySourceData.Source = args[0];

                if (args.Length > 1)
                {
                    mySourceData.LogName = args[1];
                }

                if (args.Length > 2)
                {
                    mySourceData.MachineName = args[2];
                }
                if ((args.Length > 3) && (args[3].Length
 > 0))
                {
                    mySourceData.MessageResourceFile = args[3];
                }
            }
            else 
            {
                // Display a syntax help message.
                Console.WriteLine("Input:");
                Console.WriteLine(" source [event log] [machine name] [resource
 file]");

                registerSource = false;
            }

            // Set defaults for parameters missing input.
            if (mySourceData.MachineName.Length == 0)
            {
                // Default to the local computer.
                mySourceData.MachineName = ".";
            }
            if (mySourceData.LogName.Length == 0)
            {
                // Default to the Application log.
                mySourceData.LogName = "Application";
            }

            // Determine if the source exists on the specified computer.
            if (!EventLog.SourceExists(mySourceData.Source, 
                                       mySourceData.MachineName))
            {
                // The source does not exist.  

                // Verify that the message file exists
                // and the event log is local.

                if ((mySourceData.MessageResourceFile != null)
 &&
                    (mySourceData.MessageResourceFile.Length > 0))
                {
                    if (mySourceData.MachineName == ".")
 
                    {
                        if (!System.IO.File.Exists(mySourceData.MessageResourceFile))
                        {
                            Console.WriteLine("File {0} not found - message
 file not set for source.",
                                mySourceData.MessageResourceFile);
                            registerSource = false;
                        }
                    }
                    else 
                    {
                        // For simplicity, do not allow setting the
 message
                        // file for a remote event log.  To set the
 message
                        // for a remote event log, and for source registration
,
                        // the file path should be specified with system-wide
                        // environment variables that are valid on the
 remote
                        // computer, such as
                        // "%SystemRoot%\system32\myresource.dll".

                        Console.WriteLine("Message resource file ignored for
 remote event log.");
                        registerSource = false;
                    }
                }
            }
            else
            {
                // Do not register the source, it already exists.
                registerSource = false;

                // Get the event log corresponding to the existing source.
                string sourceLog;
                sourceLog = EventLog.LogNameFromSourceName(mySourceData.Source,
                                mySourceData.MachineName);

                // Determine if the event source is registered for the
 
                // specified log.

                if (sourceLog.ToUpper(CultureInfo.InvariantCulture)
 != mySourceData.LogName.ToUpper(CultureInfo.InvariantCulture)) 
                {
                    // An existing source is registered 
                    // to write to a different event log.
                    Console.WriteLine("Warning: source {0} is already registered
 to write to event log {1}",
                        mySourceData.Source, sourceLog);
                }
                else 
                {
                    // The source is already registered 
                    // to write to the specified event log.

                    Console.WriteLine("Source {0} already registered to write
 to event log {1}",
                        mySourceData.Source, sourceLog);
                }
            }
        

            if (registerSource)
            {
                // Register the new event source for the specified event
 log.

                Console.WriteLine("Registering new source
 {0} for event log {1}.",
                    mySourceData.Source, mySourceData.LogName);
                EventLog.CreateEventSource(mySourceData);
                Console.WriteLine("Event source was registered successfully!");
            }
        }
    }
}
#using <System.dll>

using namespace System;
using namespace System::Globalization;
using namespace System::Diagnostics;

[STAThread]
int main()
{
   array<String^>^args = Environment::GetCommandLineArgs();
   
   EventSourceCreationData ^ mySourceData = gcnew EventSourceCreationData( "",""
 );
   bool registerSource = true;
   
   // Process input parameters.
   if ( args->Length > 1 )
   {
      
      // Require at least the source name.
      mySourceData->Source = args[ 1 ];
      if ( args->Length > 2 )
      {
         mySourceData->LogName = args[ 2 ];
      }

      if ( args->Length > 3 )
      {
         mySourceData->MachineName = args[ 3 ];
      }

      if ( (args->Length > 4) && (args[ 4 ]->Length
 > 0) )
      {
         mySourceData->MessageResourceFile = args[ 4 ];
      }
   }
   else
   {
      
      // Display a syntax help message.
      Console::WriteLine( "Input:" );
      Console::WriteLine( " source [event log] [machine name] [resource file]"
 );
      registerSource = false;
   }

   
   // Set defaults for parameters missing input.
   if ( mySourceData->MachineName->Length == 0 )
   {
      
      // Default to the local computer.
      mySourceData->MachineName = ".";
   }

   if ( mySourceData->LogName->Length == 0 )
   {
      
      // Default to the Application log.
      mySourceData->LogName = "Application";
   }

   
   // Determine if the source exists on the specified computer.
   if (  !EventLog::SourceExists( mySourceData->Source, mySourceData->MachineName
 ) )
   {
      
      // The source does not exist.  
      // Verify that the message file exists
      // and the event log is local.
      if ( (mySourceData->MessageResourceFile != nullptr) &&
 (mySourceData->MessageResourceFile->Length > 0) )
      {
         if ( mySourceData->MachineName->Equals( "."
 ) )
         {
            if (  !System::IO::File::Exists( mySourceData->MessageResourceFile
 ) )
            {
               Console::WriteLine( "File {0} not found - message file not set
 for source.", mySourceData->MessageResourceFile );
               registerSource = false;
            }
         }
         else
         {
            
            // For simplicity, do not allow setting the message
            // file for a remote event log.  To set the message
            // for a remote event log, and for source registration,
            // the file path should be specified with system-wide
            // environment variables that are valid on the remote
            // computer, such as
            // "%SystemRoot%\system32\myresource.dll".
            Console::WriteLine( "Message resource file ignored for
 remote event log." );
            registerSource = false;
         }
      }
   }
   else
   {
      
      // Do not register the source, it already exists.
      registerSource = false;
      
      // Get the event log corresponding to the existing source.
      String^ sourceLog;
      sourceLog = EventLog::LogNameFromSourceName( mySourceData->Source, mySourceData->MachineName
 );
      
      // Determine if the event source is registered for the 
      // specified log.
      if ( sourceLog->ToUpper( CultureInfo::InvariantCulture
 ) != mySourceData->LogName->ToUpper( CultureInfo::InvariantCulture ) )
      {
         
         // An existing source is registered 
         // to write to a different event log.
         Console::WriteLine( "Warning: source {0} is already registered to write
 to event log {1}", mySourceData->Source, sourceLog );
      }
      else
      {
         
         // The source is already registered 
         // to write to the specified event log.
         Console::WriteLine( "Source {0} already registered to write to event
 log {1}", mySourceData->Source, sourceLog );
      }
   }

   if ( registerSource )
   {
      
      // Register the new event source for the specified event log.
      Console::WriteLine( "Registering new source {0} for
 event log {1}.", mySourceData->Source, mySourceData->LogName );
      EventLog::CreateEventSource( mySourceData );
      Console::WriteLine( "Event source was registered successfully!" );
   }
}

.NET Framework のセキュリティ.NET Frameworkセキュリティ
継承階層継承階層
System.Object
  System.Diagnostics.EventSourceCreationData
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
EventSourceCreationData メンバ
System.Diagnostics 名前空間
EventLog クラス
EventLogInstaller クラス



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

辞書ショートカット

すべての辞書の索引

「EventSourceCreationData クラス」の関連用語

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

   

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



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

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

©2025 GRAS Group, Inc.RSS