次の方法で共有


EventLog.CreateEventSource メソッド (String, String, String)

指定した Source を、 machineName で指定されるコンピュータ上のログにエントリを書き込むための有効なイベント ソースとして使用し、アプリケーションを設定します。このメソッドを使用して、指定したコンピュータ上に新しいカスタム ログを作成することもできます。

Overloads Public Shared Sub CreateEventSource( _
   ByVal source As String, _   ByVal logName As String, _   ByVal machineName As String _)
[C#]
public static void CreateEventSource(stringsource,stringlogName,stringmachineName);
[C++]
public: static void CreateEventSource(String* source,String* logName,String* machineName);
[JScript]
public static function CreateEventSource(
   source : String,logName : String,machineName : String);

パラメータ

  • source
    アプリケーションを指定されたコンピュータに登録するために使用されるソース。
  • logName
    ソースのエントリが書き込まれるログの名前。指定できる値は、アプリケーション、セキュリティ、システム、またはカスタム イベント ログです。値を指定しなかった場合、 logName は既定によりアプリケーションに設定されます。
  • machineName
    このイベント ソースを登録するコンピュータの名前。ローカル コンピュータの場合は "."。

例外

例外の種類 条件
ArgumentException machineName パラメータが無効です。
ArgumentException source パラメータが null 参照 (Visual Basic では Nothing) または空の文字列 ("") です。
ArgumentException 指定したコンピュータ上に既にソースが存在するため、ソースを登録できません。
Exception アプリケーションが、指定したコンピュータ上のソースのレジストリ キーを開くことができません。

解説

指定したコンピュータ上にカスタム ログを作成したり、既存のログに Source を登録したりするには、このオーバーロードを使用します。

CreateEventSource を呼び出したときに logname が null 参照 (Visual Basic では Nothing) であった場合は、既定によりアプリケーション ログが使用されます。指定したコンピュータ上にログが存在しない場合は、システムによってカスタム ログが作成され、アプリケーションがそのログの Source ソースとして登録されます。

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

source パラメータには任意の文字列を指定できますが、通常はアプリケーションまたはアプリケーションのコンポーネントの名前を指定します。ソースはローカル コンピュータ上で一意である必要があります。ただし、1 つのイベント ログに同時に複数の異なるソースが書き込みを行うことができます。

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

このメソッドの呼び出しは省略できます。 CreateEventSource を呼び出さない場合は、初回の WriteEntry 呼び出しの時に呼び出されます。

使用例

[Visual Basic, C#, C++] コンピュータ "MyServer" 上のイベント ログ "MyNewLog" にエントリを書き込み、ソースがまだ存在しない場合はソース "MySource" を作成する例を次に示します。

[Visual Basic, C#, C++] メモ   コード内でイベント ソースを作成する必要はありません。 Source プロパティで設定したソースが存在しない場合、 WriteEntry メソッドは、イベント ログに書き込む前に、そのソースを作成します。 EventLog インスタンスの Log プロパティを指定しない場合、ログは既定によりアプリケーション ログになります。

 
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", "MyServer") Then
            EventLog.CreateEventSource("MySource", "MyNewLog", "MyServer")
            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

[C#] 
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", "MyServer")){
            EventLog.CreateEventSource("MySource", "MyNewLog", "MyServer");
            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.");                                                                        
    }
}
   

[C++] 
#using <mscorlib.dll>
#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(S"MySource", S"MyServer")){
        EventLog::CreateEventSource(S"MySource", S"MyNewLog", S"MyServer");
        Console::WriteLine(S"CreatingEventSource");
    }

    // Create an EventLog instance and assign its source.
    EventLog* myLog = new EventLog();
    myLog->Source = S"MySource";

    // Write an informational entry to the event log.    
    myLog->WriteEntry(S"Writing to event log.");

    Console::WriteLine(S"Message written to event log.");                                                                        
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows NT Server 4.0, Windows NT Workstation 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

.NET Framework セキュリティ:

参照

EventLog クラス | EventLog メンバ | System.Diagnostics 名前空間 | EventLog.CreateEventSource オーバーロードの一覧 | DeleteEventSource | SourceExists | MachineName | Source | Log | Delete