EventLog.Source プロパティ
アセンブリ: System (system.dll 内)

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


イベント ソースは、何によってイベントがログに記録されるかを示します。通常はアプリケーションの名前か、アプリケーションのサブコンポーネントの名前 (アプリケーションが大きい場合) を指定します。アプリケーションおよびサービスは、アプリケーション ログまたはカスタム ログに書き込みます。デバイス ドライバは、システム ログに書き込みます。
イベント ログに書き込む場合に必要なのは、イベント ソースを指定することだけです。イベント ログにエントリを書き込む前に、イベント ソースを有効なイベントのソースとしてイベント ログに登録する必要があります。ログのエントリを書き込むときに、システムは、Source プロパティを使用して、エントリを配置する適切なログを探します。イベント ログを読み取る場合は、Source を指定するか、または Log と MachineName を指定します。
![]() |
---|
ローカル コンピュータのログに接続している場合は MachineName を指定する必要はありません。MachineName を指定しない場合は、ローカル コンピュータ (".") であると見なされます。 |
イベントをイベント ログに書き込むには、WriteEvent と WriteEntry を使用します。イベントを書き込むには、イベント ソースを指定することが必要です。イベント ソースは、そのソースを持つ最初のエントリを書き込む前に作成および構成しておく必要があります。
アプリケーションのインストール時に新しいイベント ソースを作成します。これにより、オペレーティング システムが、登録されたイベント ソースとその構成の一覧を更新するだけの時間的余裕が生まれます。イベント ソースの一覧がオペレーティング システムにより更新されていないとき、新しいソースでイベントを書き込もうとすると、書き込み操作が失敗します。新しいソースは、EventLogInstaller または CreateEventSource メソッドを使用して構成できます。新しいイベント ソースを作成するには、コンピュータの管理者権限が必要です。
既存のイベント ログまたは新しいイベント ログのイベント ソースを作成できます。新規イベント ログに対して新しいソースを作成すると、システムは、そのログのソースを登録しますが、ログは最初のエントリが書き込まれるまで作成されません。
ソースはローカル コンピュータ上で一意である必要があります。新しいソース名に、対象となるコンピュータの既存のソース名や既存のイベント ログ名と同じ名前を付けることはできません。各ソースは同時に 1 つのログだけに登録できます。ただし、アプリケーションでは、複数のイベント ログに書き込むために複数のソースが使用される場合があります。たとえば、アプリケーションには、異なるイベント ログまたは異なるリソース ファイル用に構成された複数のソースが必要になる場合があります。
Source 値を変更すると、ソースの登録先である EventLog は閉じられ、すべてのイベント ハンドルが解放されます。
ソースは、ローカライズされたエントリを書き込むか、または直接の文字列を書き込むように構成されている必要があります。アプリケーションがリソース識別子と文字列値の両方を使用してエントリを書き込む場合、2 つの異なるソースを登録する必要があります。たとえば、複数のリソース ファイルを持つ 1 つのソースを構成してから、WriteEvent メソッドでこのソースを使用し、リソース識別子によってエントリをイベント ログに書き込みます。次に、リソース ファイルを使わずに作成した別のソースを WriteEntry メソッドで使用し、そのソースを使って文字列を直接イベント ログに書き込みます。
既存のソースの構成情報を変更するには、一度ソースを削除してから、新しい構成で作成し直す必要があります。他のアプリケーションまたはコンポーネントが既存のソースを使用している場合、既存のソースを削除するのではなく、更新された構成で新しいソースを作成します。

ソースが存在しない場合は 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.") Console.WriteLine("Message written 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."); Console.WriteLine("Message written 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." ); Console::WriteLine( "Message written 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."); Console.WriteLine("Message written to event log."); } //main } //MySample


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からEventLog.Source プロパティを検索する場合は、下記のリンクをクリックしてください。

- EventLog.Source プロパティのページへのリンク