指定した Source を、ローカル コンピュータ上のログにエントリを書き込むための有効なイベント ソースとして使用して、アプリケーションを設定します。また、このメソッドによってローカル コンピュータ上に新しいカスタム ログを作成することもできます。
Overloads Public Shared Sub CreateEventSource( _
ByVal source As String, _ ByVal logName As String _)
[C#]
public static void CreateEventSource(stringsource,stringlogName);
[C++]
public: static void CreateEventSource(String* source,String* logName);
[JScript]
public static function CreateEventSource(
source : String,logName : String);
パラメータ
- source
アプリケーションをローカル コンピュータ上に登録するときに使用するソース名。 - logName
ソースのエントリが書き込まれるログの名前。指定できる値は、アプリケーション、セキュリティ、システム、またはカスタム イベント ログです。
例外
| 例外の種類 | 条件 |
|---|---|
| ArgumentException | source パラメータが null 参照 (Visual Basic では Nothing) または空の文字列 ("") です。 |
| ArgumentException | ローカル コンピュータ上に既にソースが存在するため、ソースを登録できません。 |
| Exception | アプリケーションが、ローカル コンピュータ上のソースのレジストリ キーを開くことができません。 |
解説
ローカル コンピュータ上にカスタム ログを作成したり、既存のログに Source を登録したりするには、このオーバーロードを使用します。
CreateEventSource を呼び出したときに logname が null 参照 (Visual Basic では Nothing) または空の文字列 ("") であった場合は、既定によりアプリケーション ログが使用されます。ローカル コンピュータ上にログが存在しない場合は、システムによってカスタム ログが作成され、アプリケーションがそのログの Source として登録されます。
メモ CreateEventSource は新しいログを定義しますが、 WriteEntry は最初に呼び出されたときにログを作成します。
イベント ログに書き込む場合に必要なのは、イベント ソースを作成することだけです。イベント ログにエントリを書き込む前に、イベント ソースを有効なイベントのソースとしてイベント ログに登録する必要があります。 WriteEntry を使用してログのエントリを書き込むときに、システムは、 Source を使用して、エントリを配置する適切なログを探します。イベント ログを読み取る場合は、 Source を指定するか、または Log と MachineName を指定します。
メモ ログに接続している場合は MachineName を指定する必要はありません。ログから読み取るときに MachineName を指定しなかった場合は、ローカル コンピュータ (".") が想定されます。
source パラメータには任意の文字列を指定できますが、通常はアプリケーションまたはアプリケーションのコンポーネントの名前を指定します。ソースはローカル コンピュータ上で一意である必要があります。ただし、1 つのイベント ログに同時に複数の異なるソースが書き込みを行うことができます。
メモ ログに既にマッピングされているソースを別の新しいログにマッピングする場合、この変更を有効にするには、コンピュータを再起動する必要があります。
このメソッドの呼び出しは省略できます。 CreateEventSource を呼び出さない場合は、初回の WriteEntry 呼び出しの時に呼び出されます。
使用例
[Visual Basic, C#, C++] ローカル コンピュータのイベント ログ "MyNewLog" にエントリを書き込み、ソースがまだ存在しない場合はソース "MySource" を作成する例を次に示します。
[Visual Basic, C#, C++] メモ コード内でイベント ソースを作成する必要はありません。 Source プロパティで設定したソースが存在しない場合、 WriteEntry メソッドは、イベント ログに書き込む前に、そのソースを作成します。 EventLog インスタンスの Log プロパティを指定しない場合、ログは既定によりアプリケーション ログになります。
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.")
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")){
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.");
}
}
[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")){
EventLog::CreateEventSource(S"MySource", S"MyNewLog");
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.");
}
[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 セキュリティ:
- EventLogPermission (コンピュータ上のイベント ログ情報を参照するのに必要なアクセス許可)
- SecurityPermission (完全信頼を指定して EventLog のメンバを呼び出すためのアクセス許可) PermissionState.Unrestricted (関連する列挙体)
参照
EventLog クラス | EventLog メンバ | System.Diagnostics 名前空間 | EventLog.CreateEventSource オーバーロードの一覧 | DeleteEventSource | SourceExists | Source | Log | Delete