Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.30;
Скачать: CL | DM;

Вниз

Как писать в EventLog?   Найти похожие ветки 

 
Lucefer   (2006-02-07 11:00) [0]

Пишу сервис, соотвтетственно никаких окон об ошибках быть не должно, все перехватываю по exception. Сейчас кидаю сообщения в текстовый файл, а как их записать в журнал событий?


 
Игорь Шевченко ©   (2006-02-07 11:40) [1]

RegisterEventSource,ReportEvent

unit eventlog;

interface

uses

 Windows, SysUtils;

var

 hEventLog: THandle;

procedure LOGWRITE(EventCat: Word; EventType: UINT; EventId: DWORD; const Msg: string); overload;
procedure LOGWRITE(EventCat: Word; EventType: UINT; EventId: DWORD; const Msg: string; Args: array of const); overload;
procedure LOGMESSAGE(const Msg: string); overload;
procedure LOGMESSAGE(const Msg: string; Args: array of const); overload;
procedure LOGWARNING(const Msg: string); overload;
procedure LOGWARNING(const Msg: string; Args: array of const); overload;
procedure LOGERROR(const Msg: string); overload;
procedure LOGERROR(const Msg: string; Args: array of const); overload;

function OpenLog(const EventSource: string): Boolean;
procedure SetLogCategory(EventCategory: Word);
procedure CloseLog;

implementation

const

 EVT_MY_ERROR   = $C0000001;
 EVT_MY_WARNING = $80000002;
 EVT_MY_INFO    = $40000003;

var

 EventCat: Word = 0;

function OpenLog(const EventSource: string): Boolean;
begin
 if hEventLog = 0 then
   hEventLog := RegisterEventSource(nil, PChar(EventSource));
 Result := hEventLog <> 0;
end;

procedure CloseLog;
begin
 if hEventLog <> 0 then begin
   DeregisterEventSource(hEventLog);
   hEventLog := 0;
 end;
end;

procedure SetLogCategory(EventCategory: Word);
begin
 EventCat := EventCategory;
end;

procedure LOGWRITE(EventCat: Word; EventType: UINT; EventId: DWORD; const Msg: string);
var
 P: PChar;
begin
 P := PChar(Msg);
 ReportEvent(hEventLog, EventType, EventCat, EventId, nil, 1, 0, @P, nil);
end;

procedure LOGWRITE(EventCat: Word; EventType: UINT; EventId: DWORD; const Msg: string; Args: array of const);
var
 S: string;
 P: PChar;
begin
 S := Format(Msg, Args);
 P := PChar(S);
 ReportEvent(hEventLog, EventType, EventCat, EventId, nil, 1, 0, @P, nil);
end;

procedure LOGMESSAGE(const Msg: string);
begin
 LOGWRITE(EventCat, EVENTLOG_INFORMATION_TYPE, EVT_MY_INFO, Msg);
end;

procedure LOGMESSAGE(const Msg: string; Args: array of const);
begin
 LOGWRITE(EventCat, EVENTLOG_INFORMATION_TYPE, EVT_MY_INFO, Msg, Args);
end;

procedure LOGWARNING(const Msg: string);
begin
 LOGWRITE(EventCat, EVENTLOG_WARNING_TYPE, EVT_MY_WARNING, Msg);
end;

procedure LOGWARNING(const Msg: string; Args: array of const);
begin
 LOGWRITE(EventCat, EVENTLOG_WARNING_TYPE, EVT_MY_WARNING, Msg, Args);
end;

procedure LOGERROR(const Msg: string);
begin
 LOGWRITE(EventCat, EVENTLOG_ERROR_TYPE, EVT_MY_ERROR, Msg);
end;

procedure LOGERROR(const Msg: string; Args: array of const);
begin
 LOGWRITE(EventCat, EVENTLOG_ERROR_TYPE, EVT_MY_ERROR, Msg, Args);
end;

initialization
 hEventLog := 0;
finalization
 CloseLog;
end.


 
Lucefer   (2006-02-08 11:20) [2]

ух ты. спасибо


 
Chaser ©   (2006-02-09 16:55) [3]

Может это?

http://www.delphisources.ru/pages/sources/raznoe/2006_year/error_log.html



Страницы: 1 вся ветка

Текущий архив: 2006.04.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.037 c
2-1145188039
АЮМ
2006-04-16 15:47
2006.04.30
сохранить в файл?


3-1141629277
DancerMan
2006-03-06 10:14
2006.04.30
Как в процессе выполнения программы узнать кодировку dbf файла?


15-1144300895
kaif
2006-04-06 09:21
2006.04.30
Пирамиды. Сколько их?


2-1145184896
Std
2006-04-16 14:54
2006.04.30
обясните в чем ошибка :)


2-1145000121
_Iton_
2006-04-14 11:35
2006.04.30
Parenт для формы