mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-21 01:29:29 +02:00
+ Added support for custom log event type
This commit is contained in:
parent
79d49a94bf
commit
69c6f18a1a
@ -23,9 +23,12 @@ interface
|
||||
uses SysUtils,Classes;
|
||||
|
||||
Type
|
||||
TEventLog = Class;
|
||||
TEventType = (etCustom,etInfo,etWarning,etError,etDebug);
|
||||
TLogType = (ltSystem,ltFile);
|
||||
|
||||
TLogCodeEvent = Procedure (Sender : TObject; Var Code : DWord) of Object;
|
||||
TLogCategoryEvent = Procedure (Sender : TObject; Var Code : Word) of Object;
|
||||
|
||||
TEventLog = Class(TComponent)
|
||||
Private
|
||||
FEventIDOffset : DWord;
|
||||
@ -38,6 +41,9 @@ Type
|
||||
FFileName: String;
|
||||
FTimeStampFormat: String;
|
||||
FCustomLogType: Word;
|
||||
FOnGetCustomCategory : TLogCategoryEvent;
|
||||
FOnGetCustomEventID : TLogCodeEvent;
|
||||
FOnGetCustomEvent : TLogCodeEvent;
|
||||
procedure SetActive(const Value: Boolean);
|
||||
procedure SetIdentification(const Value: String);
|
||||
procedure SetlogType(const Value: TLogType);
|
||||
@ -52,16 +58,19 @@ Type
|
||||
procedure DeActivateFileLog;
|
||||
procedure DeActivateSystemLog;
|
||||
procedure CheckIdentification;
|
||||
function MapTypeToEvent(EventType: TEventType): DWord;
|
||||
Procedure DoGetCustomEventID(Var Code : DWord);
|
||||
Procedure DoGetCustomEventCategory(Var Code : Word);
|
||||
Procedure DoGetCustomEvent(Var Code : DWord);
|
||||
Protected
|
||||
Procedure CheckInactive;
|
||||
Procedure EnsureActive;
|
||||
function MapTypeToEvent(EventType: TEventType): DWord;
|
||||
Function MapTypeToCategory(EventType : TEventType) : Word;
|
||||
Function MapTypeToEventID(EventType : TEventType) : DWord;
|
||||
Public
|
||||
Destructor Destroy; override;
|
||||
Function EventTypeToString(E : TEventType) : String;
|
||||
Function RegisterMessageFile(AFileName : String) : Boolean; virtual;
|
||||
Function MapTypeToCategory(EventType : TEventType) : Word;
|
||||
Function MapTypeToEventID(EventType : TEventType) : DWord;
|
||||
Procedure Log (EventType : TEventType; Msg : String); {$ifndef fpc }Overload;{$endif}
|
||||
Procedure Log (EventType : TEventType; Fmt : String; Args : Array of const); {$ifndef fpc }Overload;{$endif}
|
||||
Procedure Log (Msg : String); {$ifndef fpc }Overload;{$endif}
|
||||
@ -74,6 +83,7 @@ Type
|
||||
Procedure Debug (Fmt : String; Args : Array of const); {$ifndef fpc }Overload;{$endif}
|
||||
Procedure Info (Msg : String); {$ifndef fpc }Overload;{$endif}
|
||||
Procedure Info (Fmt : String; Args : Array of const); {$ifndef fpc }Overload;{$endif}
|
||||
Published
|
||||
Property Identification : String Read FIdentification Write SetIdentification;
|
||||
Property LogType : TLogType Read Flogtype Write SetlogType;
|
||||
Property Active : Boolean Read FActive write SetActive;
|
||||
@ -82,6 +92,9 @@ Type
|
||||
Property TimeStampFormat : String Read FTimeStampFormat Write FTimeStampFormat;
|
||||
Property CustomLogType : Word Read FCustomLogType Write FCustomLogType;
|
||||
Property EventIDOffset : DWord Read FEventIDOffset Write FEventIDOffset;
|
||||
Property OnGetCustomCategory : TLogCategoryEvent Read FOnGetCustomCategory Write FOnGetCustomCategory;
|
||||
Property OnGetCustomEventID : TLogCodeEvent Read FOnGetCustomEventID Write FOnGetCustomEventID;
|
||||
Property OnGetCustomEvent : TLogCodeEvent Read FOnGetCustomEvent Write FOnGetCustomEvent;
|
||||
End;
|
||||
|
||||
ELogError = Class(Exception);
|
||||
@ -277,6 +290,28 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
Procedure TEventLog.DoGetCustomEventID(Var Code : DWord);
|
||||
|
||||
begin
|
||||
If Assigned(FOnGetCustomEventID) then
|
||||
FOnGetCustomEventID(Self,Code);
|
||||
end;
|
||||
|
||||
Procedure TEventLog.DoGetCustomEventCategory(Var Code : Word);
|
||||
|
||||
begin
|
||||
If Assigned(FOnGetCustomCategory) then
|
||||
FOnGetCustomCategory(Self,Code);
|
||||
end;
|
||||
|
||||
Procedure TEventLog.DoGetCustomEvent(Var Code : DWord);
|
||||
|
||||
begin
|
||||
If Assigned(FOnGetCustomEvent) then
|
||||
FOnGetCustomEvent(Self,Code);
|
||||
end;
|
||||
|
||||
|
||||
destructor TEventLog.Destroy;
|
||||
begin
|
||||
Active:=False;
|
||||
@ -287,7 +322,10 @@ end.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.1 2003-02-19 20:25:16 michael
|
||||
Revision 1.2 2003-03-25 21:04:48 michael
|
||||
+ Added support for custom log event type
|
||||
|
||||
Revision 1.1 2003/02/19 20:25:16 michael
|
||||
+ Added event log
|
||||
|
||||
}
|
||||
|
@ -232,23 +232,36 @@ end;
|
||||
function TEventLog.MapTypeToCategory(EventType: TEventType): Word;
|
||||
begin
|
||||
Result:=0;
|
||||
If (EventType=ETCustom) then
|
||||
DoGetCustomEventCategory(Result);
|
||||
end;
|
||||
|
||||
function TEventLog.MapTypeToEventID(EventType: TEventType): DWord;
|
||||
|
||||
begin
|
||||
Result:=0;
|
||||
If (EventType=ETCustom) then
|
||||
DoGetCustomEventID(Result);
|
||||
end;
|
||||
|
||||
function TEventLog.MapTypeToEvent(EventType: TEventType): DWord;
|
||||
|
||||
begin
|
||||
Result := ord (EventType);
|
||||
If EventType=etCustom Then
|
||||
begin
|
||||
Result:=CustomLogType;
|
||||
DoGetCustomEvent(Result);
|
||||
end
|
||||
else
|
||||
Result := ord (EventType);
|
||||
end;
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.3 2003-03-20 20:15:27 hajny
|
||||
Revision 1.4 2003-03-25 21:08:10 michael
|
||||
+ Added support for custom log event type
|
||||
|
||||
Revision 1.3 2003/03/20 20:15:27 hajny
|
||||
* range checking has to be disabled
|
||||
|
||||
Revision 1.2 2003/03/02 02:01:35 hajny
|
||||
|
@ -99,12 +99,16 @@ end;
|
||||
function TEventLog.MapTypeToCategory(EventType: TEventType): Word;
|
||||
begin
|
||||
Result:=0;
|
||||
If (EventType=ETCustom) then
|
||||
DoGetCustomEventCategory(Result);
|
||||
end;
|
||||
|
||||
function TEventLog.MapTypeToEventID(EventType: TEventType): DWord;
|
||||
|
||||
begin
|
||||
Result:=0;
|
||||
If (EventType=ETCustom) then
|
||||
DoGetCustomEventID(Result);
|
||||
end;
|
||||
|
||||
function TEventLog.MapTypeToEvent(EventType: TEventType): DWord;
|
||||
@ -118,7 +122,8 @@ begin
|
||||
begin
|
||||
If CustomLogType=0 then
|
||||
CustomLogType:=LOG_NOTICE;
|
||||
Result:=CustomLogType
|
||||
Result:=CustomLogType;
|
||||
DoGetCustomEvent(Result);
|
||||
end
|
||||
else
|
||||
Result:=WinET[EventType];
|
||||
|
@ -106,7 +106,10 @@ end;
|
||||
|
||||
function TEventLog.MapTypeToCategory(EventType: TEventType): Word;
|
||||
begin
|
||||
Result:=Ord(EventType);
|
||||
If (EventType=ETCustom) then
|
||||
DoGetCustomEventCategory(Result)
|
||||
else
|
||||
Result:=Ord(EventType);
|
||||
If Result=0 then
|
||||
Result:=1;
|
||||
end;
|
||||
@ -114,9 +117,14 @@ end;
|
||||
function TEventLog.MapTypeToEventID(EventType: TEventType): DWord;
|
||||
|
||||
begin
|
||||
If (FEventIDOffset=0) then
|
||||
FEventIDOffset:=1000;
|
||||
Result:=FEventIDOffset+Ord(EventType);
|
||||
If (EventType=ETCustom) then
|
||||
DoGetCustomEventID(Result)
|
||||
else
|
||||
begin
|
||||
If (FEventIDOffset=0) then
|
||||
FEventIDOffset:=1000;
|
||||
Result:=FEventIDOffset+Ord(EventType);
|
||||
end;
|
||||
end;
|
||||
|
||||
function TEventLog.MapTypeToEvent(EventType: TEventType): DWord;
|
||||
@ -136,6 +144,7 @@ begin
|
||||
If CustomLogType=0 then
|
||||
CustomLogType:=EVENTLOG_SUCCESS;
|
||||
Result:=CustomLogType
|
||||
DoGetCustomEvent(Result);
|
||||
end
|
||||
else
|
||||
Result:=WinET[EventType];
|
||||
|
Loading…
Reference in New Issue
Block a user