次の方法で共有


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;
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 プロパティを使用して、エントリを配置する適切なログを検索します。 イベント ログを読み取る場合は、 Sourceを指定するか、 LogMachineNameを指定できます。

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

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

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

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

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

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

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

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

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

適用対象

こちらもご覧ください