다음을 통해 공유


EventSourceCreationData.ParameterResourceFile 속성

정의

원본에 대한 메시지 매개 변수 문자열을 포함하는 리소스 파일의 경로를 가져오거나 설정합니다.

public:
 property System::String ^ ParameterResourceFile { System::String ^ get(); void set(System::String ^ value); };
public string ParameterResourceFile { get; set; }
member this.ParameterResourceFile : string with get, set
Public Property ParameterResourceFile As String

속성 값

매개 변수 리소스 파일의 경로입니다. 기본값은 빈 문자열("")입니다.

예제

다음 코드 예제에서는 이름이 지정된 SampleApplicationSource 이벤트 원본이 로컬 컴퓨터에 등록되어 있는지 여부를 결정합니다. 이벤트 원본이 없으면 원본에 대한 메시지 리소스 파일을 설정하고 새 이벤트 원본을 만드는 예제입니다. 마지막으로 코드 예제에서는 리소스 식별자 값 및 리소스 파일 경로를 messageFile사용하여 이벤트 로그의 DisplayNameMsgId 지역화된 표시 이름을 설정합니다.

static void CreateEventSourceSample1(string messageFile)
{
    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);
    }
}
Public Shared Sub CreateEventSourceSample1(ByVal messageFile As String)

    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
End Sub

코드 예제에서는 리소스 라이브러리 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
.

설명

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 하지 마세요.

이벤트 메시지를 정의하고 이벤트 리소스 파일을 빌드하는 방법에 대한 자세한 내용은 플랫폼 SDK 설명서의 메시지 컴파일러 문서를 참조하세요.

적용 대상

추가 정보