문제

Delphi 5 응용 프로그램에서 Windows 로그로 및 다른 게시물에서 이벤트 로깅에 대해보고 싶습니다. 여기 나는 내가 사용할 수 있다는 것을 본다 TEventLogger 이 작업을 수행하는 수업.

그러나 나는의 구문에 대한 문서를 찾을 수 없습니다. TEventLogger.LogMessage 절차, 따라서 모든 매개 변수의 의미, 사용 방법 또는 가능한 값을 사용할 수있는 값을 모릅니다.

나는 주변을 둘러 보려고 노력했지만 Embarcadero의 페이지가 함수가 존재한다고 말하지만 구문에는 아무것도 없으며 MSDN은 도움이되지 않습니다.

누구든지 내가 할 수있는 일에 대해 약간의 도움을 줄 수있는 도움말 페이지 나 정보가 있습니까?

도움이 되었습니까?

해결책

TEventLogger 내부 도우미 클래스입니다 TService.

당신은 메시지를 사용하여 메시지를 기록합니다 TService.LogMessage() 전화가 아니라 기능 TEventLogger 곧장. 의 매개 변수 LogMessage() Win32 API의 매개 변수와 직접 일치합니다 ReportEvent() 기능.

자세한 내용은 Win32 API 문서를 살펴보십시오.

서비스 신청서를 작성하지 않는 경우 Win32 API에 전화해야합니다. RegisterEventSource() 그리고 ReportEvent() 대신 직접 기능합니다.

다른 팁

이벤트 로그에 쓰는 응용 프로그램의 간단한 예 :

procedure WriteToLog(Msg:string; EventId: Word = 0);
var
  h: THandle;
begin
  h := RegisterEventSource(nil, PChar(Application.ExeName));
  if h > 0 then
  try
    ReportEvent(h, 0, 0, EventId, nil, 1, 0, @Msg, nil);
  finally
    DeregisterEventSource(h);
  end;
end;

procedure TForm7.Button1Click(Sender: TObject);
begin
  WriteToLog('* Blah Blah Blah *');
end;

그러나 조심하지 마십시오 시스템에 EventID 등록 이런 종류의 혼란스러운 설명을 제공합니다.

소스 (C : 문서 및 설정 fgaillard my documents rad Studio Projects project1.exe)의 이벤트 ID (0)에 대한 설명을 찾을 수 없습니다. 로컬 컴퓨터에는 원격 컴퓨터에서 메시지를 표시하는 데 필요한 레지스트리 정보 또는 메시지 파일이 없을 수 있습니다. /auxsource = 플래그를 사용 하여이 설명을 검색 할 수 있습니다. 자세한 내용은 도움과 지원을 참조하십시오. 다음 정보는 이벤트의 일부입니다. * Blah Blah Blah *.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top