사용자 정의 확장은 예외를 사용하여 오류를 보고하는 것이 권장되므로 메시지 처리 노드 및 구문 분석기는 직접 로컬 오류 로그에 쓸 필요가 없습니다. 그러나 선택할 수 있으며 WebSphere Message Broker와 동일한 방식으로 문제점 판별 및 조작 목적을 위해 중요한 이벤트나 오류를 쓰도록 선택할 수 있습니다.
C 코드 사용 시, 유틸리티 함수 CciLog를 사용하여 이를 수행할 수 있습니다. 이 함수에 의해 승인된 두 개의 인수 messageSource 및 messageNumber는 해당 소스에서 각각 메시지의 실제 정수 표현과 이벤트 소스를 정의합니다.
Java 코드의 경우, 클래스 MbService는 로그 정보를 이벤트 로그에 기록하기 위한 정적 메소드를 제공합니다. 이벤트 로그에 메시지를 기록하려면, 표준 Java 자원 번들로 사용자 메시지를 패키징해야 합니다. 자원 번들 이름 및 메시지 키를 전달하여 세 개의 로깅 메소드 중 하나를 사용할 수 있습니다. 메시지는 완전히 해석된 후 아래와 같이 해당 브로커 메시지로의 단일 삽입으로 삽입됩니다.
Windows 시스템의 경우, 메시지는 Windows 이벤트 로그에 기록되며 메시지 카탈로그는 Windows DLL로 전달되어야 합니다.
Linux 및 UNIX 시스템의 경우, 이 메시지는 SYSLOG에 쓰여지며, 메시지 카탈로그는 XPG4 메시지 카탈로그로 전달되어야 합니다.
위의 사항들은 정상 처리 중 발생하는 예외를 다룹니다. 또한 메시지 플로우를 전개하고 구성할 때 발생하는 예외를 제공해야 합니다. 이 구성 예외로 인해 발생한 메시지는 Workbench 사용자에게 표시하기 위해 Workbench로 다시 보고됩니다. 이를 용이하게 하려면, 적절하게 이름 지정된 Java 등록 정보 파일을 작성하여 각 Workbench로 복사해야 합니다.
Windows에서, 메시지 카탈로그는 아래에서 설명한 대로 작성해야 하는 Windows DLL로 전달됩니다. 이것은 사용자 응용프로그램에서 작성한 이벤트 메시지에 근거하여 읽을 수 있는 형식을 표시하기 위해 이벤트 표시기를 사용 가능하게 하는 이벤트 메시지의 정의를 포함합니다. 메시지 카탈로그를 컴파일하면, 사용자가 작성한 각 이벤트 메시지 번호의 기호 값을 정의하는 헤더 파일이 작성됩니다. 이 헤더 파일은 사용자 응용프로그램에 의해 포함됩니다.
mc -v -w -s -h c:\mymessages -r c:\mymessages mymsg.mc
여기서 c:\mymessages는 출력 파일의 경로와 디렉토리이며 mymsg.mc는 입력 파일의 이름입니다.
메시지 컴파일러는 input.mc 파일에서 코드화된 각 메시지 번호로 맵핑하는 기호 #defines를 포함하는 출력 헤더(.h) 파일을 생성합니다. 이 헤더 파일은 사용자가 정의한 이벤트 메시지를 쓰기 위해 CciLog 유틸리티를 사용하는 사용자 정의 확장 소스 파일을 컴파일할 때 포함되어야 합니다. CciLog에 대한 messageNumber 인수는 출력 헤더 파일에서 정의된 해당 값 해시를 사용해야 합니다.
RC /v <filename>.rc
LINK /DLL /NOENTRY <filename>.res
regedit
HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services EventLog Application
응용프로그램을 마우스 오른쪽 단추로 누르고 신규->키를 선택하십시오. 새 키는 Application 키 바로 아래에 작성됩니다(WebSphere Message Broker 키 아래가 아님). CciLog 호출의 messageSource 매개변수에 지정하는 이름에 키를 제공해야 합니다.