EventLog.Source プロパティ

定義

イベント ログを書き込むときに登録して使用するソース名を取得または設定します。

public:
 property System::String ^ Source { System::String ^ get(); void set(System::String ^ value); };
[System.ComponentModel.SettingsBindable(true)]
public string Source { get; set; }
[System.ComponentModel.TypeConverter("System.Diagnostics.Design.StringValueConverter, System.Design, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
public string Source { get; set; }
[System.ComponentModel.TypeConverter("System.Diagnostics.Design.StringValueConverter, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
public string Source { get; set; }
[System.ComponentModel.SettingsBindable(true)]
[System.ComponentModel.TypeConverter("System.Diagnostics.Design.StringValueConverter, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
public string Source { get; set; }
[<System.ComponentModel.SettingsBindable(true)>]
member this.Source : string with get, set
[<System.ComponentModel.TypeConverter("System.Diagnostics.Design.StringValueConverter, System.Design, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")>]
member this.Source : string with get, set
[<System.ComponentModel.TypeConverter("System.Diagnostics.Design.StringValueConverter, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")>]
member this.Source : string with get, set
[<System.ComponentModel.SettingsBindable(true)>]
[<System.ComponentModel.TypeConverter("System.Diagnostics.Design.StringValueConverter, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")>]
member this.Source : string with get, set
Public Property Source As String

プロパティ値

エントリのソースとしてイベント ログに登録される名前。 既定値は、空の文字列 ("") です。

属性

例外

ソース名は、254 文字を超えるレジストリ キーのパスになります。

次の例では、ソース MySource がまだ存在しない場合は作成し、イベント ログ にエントリを書き込みます MyNewLog

#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." );
   Console::WriteLine( "Message written to event log." );
}
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"))
        {
            // An event log source should not be created and immediately used.
            // There is a latency time to enable the source, it should be created
            // prior to executing the application that uses the source.
            // Execute this sample a second time to use the new source.
            EventLog.CreateEventSource("MySource", "MyNewLog");
            Console.WriteLine("CreatingEventSource");
            Console.WriteLine("Exiting, execute the application a second time to use the source.");
            // The source is created.  Exit the application to allow it to be registered.
            return;
        }

        // 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.");

        Console.WriteLine("Message written to event log.");
    }
}
Option Explicit
Option Strict
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.")
        
        Console.WriteLine("Message written to event log.")
    End Sub
End Class

注釈

イベント ソースは、イベントをログに記録する内容を示します。 多くの場合、アプリケーションの名前、またはアプリケーションが大きい場合は、アプリケーションのサブコンポーネントの名前です。 アプリケーションとサービスは、アプリケーション ログまたはカスタム ログに書き込む必要があります。 デバイス ドライバーは、システム ログに書き込む必要があります。

イベント ログに書き込む場合にのみ、イベント ソースを指定する必要があります。 イベント ログにエントリを書き込む前に、イベント ソースをイベント ログに有効なイベント ソースとして登録する必要があります。 ログ エントリを書き込むと、システムは プロパティを Source 使用して、エントリを配置する適切なログを見つけます。 イベント ログを読み取る場合は、 または LogMachineNameと を指定Sourceできます。

注意

ローカル コンピューターのログに接続する場合は、 を指定 MachineName する必要はありません。 を MachineName指定しない場合は、ローカル コンピューター (".") が想定されます。

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

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

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

ソースはローカル コンピューターで一意である必要があります。新しいソース名は、既存のソース名または既存のイベント ログ名と一致できません。 各ソースは、一度に 1 つのイベント ログにのみ書き込むことができます。ただし、アプリケーションは複数のソースを使用して複数のイベント ログに書き込むことができます。 たとえば、アプリケーションでは、異なるイベント ログまたは異なるリソース ファイルに対して複数のソースを構成する必要がある場合があります。

値を Source 変更すると、登録されている が EventLog 閉じられ、すべてのイベント ハンドルが解放されます。

ソースは、ローカライズされたエントリを書き込むか、直接文字列を書き込む目的で構成する必要があります。 アプリケーションがリソース識別子と文字列値の両方を使用してエントリを書き込む場合は、2 つの個別のソースを登録する必要があります。 たとえば、リソース ファイルを使用して 1 つのソースを構成し、 メソッドでそのソースを WriteEvent 使用して、リソース識別子を使用してエントリをイベント ログに書き込みます。 次に、リソース ファイルのない別のソースを作成し、 メソッドでそのソースを WriteEntry 使用して、そのソースを使用してイベント ログに文字列を直接書き込みます。

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

注意

ソースが既にログにマップされていて、それを新しいログに再マップする場合は、変更を有効にするためにコンピューターを再起動する必要があります。

適用対象

こちらもご覧ください