1
0
mirror of synced 2024-11-14 08:29:15 +00:00
x2log/X2Log.Observer.Custom.pas

56 lines
1.5 KiB
ObjectPascal
Raw Normal View History

2014-05-18 18:09:07 +00:00
unit X2Log.Observer.Custom;
interface
uses
Classes,
SysUtils,
X2Log.Intf;
type
TX2LogLevels = set of TX2LogLevel;
TX2LogCustomObserver = class(TInterfacedObject, IX2LogBase, IX2LogObserver)
2014-05-18 18:09:07 +00:00
private
FLogLevels: TX2LogLevels;
protected
procedure DoLog(ALevel: TX2LogLevel; ADateTime: TDateTime; const AMessage, ACategory: string; ADetails: IX2LogDetails); virtual; abstract;
2014-05-18 18:09:07 +00:00
property LogLevels: TX2LogLevels read FLogLevels;
public
constructor Create(ALogLevels: TX2LogLevels = X2LogLevelsDefault);
{ IX2LogBase }
procedure Log(ALevel: TX2LogLevel; const AMessage: string; const ACategory: string = ''; ADetails: IX2LogDetails = nil); overload;
procedure Log(ALevel: TX2LogLevel; ADateTime: TDateTime; const AMessage: string; const ACategory: string = ''; ADetails: IX2LogDetails = nil); overload;
2014-05-18 18:09:07 +00:00
end;
implementation
{ TX2LogCustomObserver }
constructor TX2LogCustomObserver.Create(ALogLevels: TX2LogLevels);
begin
inherited Create;
FLogLevels := ALogLevels;
end;
procedure TX2LogCustomObserver.Log(ALevel: TX2LogLevel; const AMessage, ACategory: string; ADetails: IX2LogDetails);
begin
Log(ALevel, Now, AMessage, ACategory, ADetails);
end;
procedure TX2LogCustomObserver.Log(ALevel: TX2LogLevel; ADateTime: TDateTime; const AMessage, ACategory: string; ADetails: IX2LogDetails);
2014-05-18 18:09:07 +00:00
begin
if ALevel in LogLevels then
DoLog(ALevel, ADateTime, AMessage, ACategory, ADetails);
2014-05-18 18:09:07 +00:00
end;
end.