EventSourceCreationData.ParameterResourceFile プロパティ
アセンブリ: System (system.dll 内)
構文Dim instance As EventSourceCreationData Dim value As String value = instance.ParameterResourceFile instance.ParameterResourceFile = value
/** @property */ public String get_ParameterResourceFile () /** @property */ public void set_ParameterResourceFile (String value)
public function get ParameterResourceFile () : String public function set ParameterResourceFile (value : String)
パラメータ リソース ファイルのパス。既定値は空の文字列 ("") です。
解説ローカライズされたイベント メッセージを、挿入されたパラメータ文字列と共に書き込むようにイベント ログ ソースを構成するには、ParameterResourceFile プロパティを使用します。MessageResourceFile プロパティに指定されているローカライズされた各イベント メッセージには、挿入文字列のプレースホルダを定義できます。これらのプレースホルダは、イベント メッセージ内の言語に依存しない文字列の位置およびリソース識別子を指定するために使用します。イベント ビューアは、ParameterResourceFile の対応する文字列でプレースホルダを置き換え、ローカライズされたイベント エントリのイベント ログ メッセージの書式を設定します。
たとえば、次のメッセージ テキスト ファイルのセクションは、パラメータのプレースホルダを持つ文字列を定義しています。
MessageId = 1501 Severity = Success Facility = Application SymbolicName = COMPONENT_STARTING Language=English Component %%6050 is starting. .
パラメータ リソース ファイル内で、次に示すように、プレースホルダに対応する挿入文字列をリソース識別子と共に定義する必要があります。
MessageId = 6050 Severity = Success Facility = Application SymbolicName = COMPONENT_NAME_MSGID Language=English TRIGGER.EXE .
イベント ソースは、ローカライズされたエントリを書き込むか、または直接の文字列を書き込むように構成されている必要があります。メッセージ リソース ファイルで構成されたソースのローカライズされたエントリを書き込むには、WriteEvent メソッドを使用します。
アプリケーションがイベント メッセージ文字列をイベント ログに直接書き込む場合、または MessageResourceFile プロパティにパラメータ挿入プレースホルダを持つメッセージが定義されていない場合は、ParameterResourceFile プロパティを設定しないでください。
イベント メッセージの定義およびイベント リソース ファイルの作成の詳細については、http://www.microsoft.com/japan/msdn のプラットフォーム SDK ドキュメントで「Message Compiler」のトピックを参照してください。
使用例SampleApplicationSource という名前のイベント ソースがローカル コンピュータに登録されているかどうかを確認するコード例を次に示します。この例では、イベント ソースが存在しない場合、ソースに対応するメッセージ リソース ファイルを設定し、新しいイベント ソースを作成します。最後にコード例は、DisplayNameMsgId のリソース識別子の値と messageFile のリソース ファイル パスを使用し、イベント ログに対してローカライズされた表示名を設定します。
Dim myLogName As String Dim sourceName As String = "SampleApplicationSource" ' Create the event source if it does not exist. If Not EventLog.SourceExists(sourceName) ' Create a new event source for the custom event log ' named "myNewLog." myLogName = "myNewLog" Dim mySourceData As EventSourceCreationData = New EventSourceCreationData(sourceName, myLogName) ' Set the message resource file that the event source references. ' All event resource identifiers correspond to text in this file. If Not System.IO.File.Exists(messageFile) Console.WriteLine("Input message resource file does not exist - {0}", _ messageFile) messageFile = "" Else ' Set the specified file as the resource ' file for message text, category text and ' message parameters strings. mySourceData.MessageResourceFile = messageFile mySourceData.CategoryResourceFile = messageFile mySourceData.CategoryCount = CategoryCount mySourceData.ParameterResourceFile = messageFile Console.WriteLine("Event source message resource file set to {0}", _ messageFile) End If Console.WriteLine("Registering new source for event log.") EventLog.CreateEventSource(mySourceData) Else ' Get the event log corresponding to the existing source. myLogName = EventLog.LogNameFromSourceName(sourceName,".") End If ' Register the localized name of the event log. ' For example, the actual name of the event log is "myNewLog," but ' the event log name displayed in the Event Viewer might be ' "Sample Application Log" or some other application-specific ' text. Dim myEventLog As EventLog = New EventLog(myLogName, ".", sourceName) If messageFile.Length > 0 myEventLog.RegisterDisplayName(messageFile, DisplayNameMsgId) End If
string myLogName; string sourceName = "SampleApplicationSource"; // Create the event source if it does not exist. if(!EventLog.SourceExists(sourceName)) { // Create a new event source for the custom event log // named "myNewLog." myLogName = "myNewLog"; EventSourceCreationData mySourceData = new EventSourceCreationData(sourceName, myLogName); // Set the message resource file that the event source references. // All event resource identifiers correspond to text in this file. if (!System.IO.File.Exists(messageFile)) { Console.WriteLine("Input message resource file does not exist - {0}", messageFile); messageFile = ""; } else { // Set the specified file as the resource // file for message text, category text, and // message parameter strings. mySourceData.MessageResourceFile = messageFile; mySourceData.CategoryResourceFile = messageFile; mySourceData.CategoryCount = CategoryCount; mySourceData.ParameterResourceFile = messageFile; Console.WriteLine("Event source message resource file set to {0}", messageFile); } Console.WriteLine("Registering new source for event log."); EventLog.CreateEventSource(mySourceData); } else { // Get the event log corresponding to the existing source. myLogName = EventLog.LogNameFromSourceName(sourceName,"."); } // Register the localized name of the event log. // For example, the actual name of the event log is "myNewLog," but // the event log name displayed in the Event Viewer might be // "Sample Application Log" or some other application-specific // text. EventLog myEventLog = new EventLog(myLogName, ".", sourceName); if (messageFile.Length > 0) { myEventLog.RegisterDisplayName(messageFile, DisplayNameMsgId); }
String^ myLogName; String^ sourceName = "SampleApplicationSource"; // Create the event source if it does not exist. if ( !EventLog::SourceExists( sourceName ) ) { // Create a new event source for the custom event log // named "myNewLog." myLogName = "myNewLog"; EventSourceCreationData ^ mySourceData = gcnew EventSourceCreationData( sourceName,myLogName ); // Set the message resource file that the event source references. // All event resource identifiers correspond to text in this file. if ( !System::IO::File::Exists( messageFile ) ) { Console::WriteLine( "Input message resource file does not exist - {0}", messageFile ); messageFile = ""; } else { // Set the specified file as the resource // file for message text, category text, and // message parameter strings. mySourceData->MessageResourceFile = messageFile; mySourceData->CategoryResourceFile = messageFile; mySourceData->CategoryCount = CategoryCount; mySourceData->ParameterResourceFile = messageFile; Console::WriteLine( "Event source message resource file set to {0}", messageFile ); } Console::WriteLine( "Registering new source for event log." ); EventLog::CreateEventSource( mySourceData ); } else { // Get the event log corresponding to the existing source. myLogName = EventLog::LogNameFromSourceName( sourceName, "." ); } // Register the localized name of the event log. // For example, the actual name of the event log is "myNewLog," but // the event log name displayed in the Event Viewer might be // "Sample Application Log" or some other application-specific // text. EventLog^ myEventLog = gcnew EventLog( myLogName,".",sourceName ); if ( messageFile->Length > 0 ) { myEventLog->RegisterDisplayName( messageFile, DisplayNameMsgId ); }
コード例では、リソース ライブラリ EventLogMsgs.dll に組み込まれた、次のメッセージ テキスト ファイルが使用されています。メッセージ リソース ファイルは、メッセージ テキスト ファイルから生成されます。メッセージ テキスト ファイルでは、リソース識別子の他、カテゴリ、イベント メッセージ、およびパラメータ挿入文字列のテキストが定義されます。具体的には、リソース識別子 1004 に対して定義されたメッセージは、リソース識別子 5002 に対して定義されたパラメータ文字列のプレースホルダを使用します。
; // EventLogMsgs.mc ; // ******************************************************** ; // Use the following commands to build this file: ; // mc -s EventLogMsgs.mc ; // rc EventLogMsgs.rc ; // link /DLL /SUBSYSTEM:WINDOWS /NOENTRY /MACHINE:x86 EventLogMsgs.Res ; // ******************************************************** ; // - Event categories - ; // Categories must be numbered consecutively starting at 1. ; // ******************************************************** MessageId=0x1 Severity=Success SymbolicName=INSTALL_CATEGORY Language=English Installation . MessageId=0x2 Severity=Success SymbolicName=QUERY_CATEGORY Language=English Database Query . MessageId=0x3 Severity=Success SymbolicName=REFRESH_CATEGORY Language=English Data Refresh . ; // - Event messages - ; // ********************************* MessageId = 1000 Severity = Success Facility = Application SymbolicName = AUDIT_SUCCESS_MESSAGE_ID_1000 Language=English My application message text, in English, for message id 1000, called from %1. . MessageId = 1001 Severity = Warning Facility = Application SymbolicName = AUDIT_FAILED_MESSAGE_ID_1001 Language=English My application message text, in English, for message id 1001, called from %1. . MessageId = 1002 Severity = Success Facility = Application SymbolicName = GENERIC_INFO_MESSAGE_ID_1002 Language=English My generic information message in English, for message id 1002. . MessageId = 1003 Severity = Warning Facility = Application SymbolicName = GENERIC_WARNING_MESSAGE_ID_1003 Language=English My generic warning message in English, for message id 1003, called from %1. . MessageId = 1004 Severity = Success Facility = Application SymbolicName = UPDATE_CYCLE_COMPLETE_MESSAGE_ID_1004 Language=English The update cycle is complete for %%5002. . MessageId = 1005 Severity = Warning Facility = Application SymbolicName = SERVER_CONNECTION_DOWN_MESSAGE_ID_1005 Language=English The refresh operation did not complete because the connection to server %1 could not be established. . ; // - Event log display name - ; // ******************************************************** MessageId = 5001 Severity = Success Facility = Application SymbolicName = EVENT_LOG_DISPLAY_NAME_MSGID Language=English Sample Event Log . ; // - Event message parameters - ; // Language independent insertion strings ; // ******************************************************** MessageId = 5002 Severity = Success Facility = Application SymbolicName = EVENT_LOG_SERVICE_NAME_MSGID Language=English SVC_UPDATE.EXE .
.NET Framework のセキュリティ
プラットフォーム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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照- EventSourceCreationData.ParameterResourceFile プロパティのページへのリンク