LazLogger: conditional logging / support And/Or operators for log-groups

git-svn-id: trunk@60516 -
This commit is contained in:
martin 2019-02-26 18:51:47 +00:00
parent fd88788ac2
commit 9d250edfa3
5 changed files with 240 additions and 165 deletions

View File

@ -5,7 +5,6 @@ Used by:
- LazLoggerDummy
*)
procedure DebuglnStack(const s: string);
begin
{$IFnDEF LazLoggerDummy}
@ -139,138 +138,138 @@ begin
{$ENDIF}
end;
procedure DebuglnStack(LogGroup: PLazLoggerLogGroup; const s: string);
procedure DebuglnStack(LogEnabled: TLazLoggerLogEnabled; const s: string);
begin
{$IFnDEF USED_BY_LAZLOGGER_DUMMY}
DebugLogger.DebuglnStack(LogGroup, s);
DebugLogger.DebuglnStack(LogEnabled, s);
{$ENDIF}
end;
procedure DbgOut(LogGroup: PLazLoggerLogGroup; const s: string);
procedure DbgOut(LogEnabled: TLazLoggerLogEnabled; const s: string);
begin
{$IFnDEF USED_BY_LAZLOGGER_DUMMY}
DebugLogger.DbgOut(LogGroup, s);
DebugLogger.DbgOut(LogEnabled, s);
{$ENDIF}
end;
procedure DbgOut(LogGroup: PLazLoggerLogGroup; Args: array of const);
procedure DbgOut(LogEnabled: TLazLoggerLogEnabled; Args: array of const);
begin
{$IFnDEF USED_BY_LAZLOGGER_DUMMY}
DebugLogger.DbgOut(LogGroup, Args);
DebugLogger.DbgOut(LogEnabled, Args);
{$ENDIF}
end;
procedure DbgOut(LogGroup: PLazLoggerLogGroup; const S: String; Args: array of const);
procedure DbgOut(LogEnabled: TLazLoggerLogEnabled; const S: String; Args: array of const);
begin
{$IFnDEF USED_BY_LAZLOGGER_DUMMY}
DebugLogger.DbgOut(LogGroup, s, Args);
DebugLogger.DbgOut(LogEnabled, s, Args);
{$ENDIF}
end;
procedure DbgOut(LogGroup: PLazLoggerLogGroup; const s1, s2: string; const s3: string;
procedure DbgOut(LogEnabled: TLazLoggerLogEnabled; const s1, s2: string; const s3: string;
const s4: string; const s5: string; const s6: string; const s7: string; const s8: string;
const s9: string; const s10: string; const s11: string; const s12: string;
const s13: string; const s14: string; const s15: string; const s16: string;
const s17: string; const s18: string);
begin
{$IFnDEF USED_BY_LAZLOGGER_DUMMY}
DebugLogger.DbgOut(LogGroup, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18);
DebugLogger.DbgOut(LogEnabled, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18);
{$ENDIF}
end;
procedure DebugLn(LogGroup: PLazLoggerLogGroup; const s: string);
procedure DebugLn(LogEnabled: TLazLoggerLogEnabled; const s: string);
begin
{$IFnDEF USED_BY_LAZLOGGER_DUMMY}
DebugLogger.DebugLn(LogGroup, s);
DebugLogger.DebugLn(LogEnabled, s);
{$ENDIF}
end;
procedure DebugLn(LogGroup: PLazLoggerLogGroup; Args: array of const);
procedure DebugLn(LogEnabled: TLazLoggerLogEnabled; Args: array of const);
begin
{$IFnDEF USED_BY_LAZLOGGER_DUMMY}
DebugLogger.DebugLn(LogGroup, Args);
DebugLogger.DebugLn(LogEnabled, Args);
{$ENDIF}
end;
procedure DebugLn(LogGroup: PLazLoggerLogGroup; const S: String; Args: array of const);
procedure DebugLn(LogEnabled: TLazLoggerLogEnabled; const S: String; Args: array of const);
begin
{$IFnDEF USED_BY_LAZLOGGER_DUMMY}
DebugLogger.DebugLn(LogGroup, s, Args);
DebugLogger.DebugLn(LogEnabled, s, Args);
{$ENDIF}
end;
procedure DebugLn(LogGroup: PLazLoggerLogGroup; const s1, s2: string; const s3: string;
procedure DebugLn(LogEnabled: TLazLoggerLogEnabled; const s1, s2: string; const s3: string;
const s4: string; const s5: string; const s6: string; const s7: string; const s8: string;
const s9: string; const s10: string; const s11: string; const s12: string;
const s13: string; const s14: string; const s15: string; const s16: string;
const s17: string; const s18: string);
begin
{$IFnDEF USED_BY_LAZLOGGER_DUMMY}
DebugLogger.DebugLn(LogGroup, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18);
DebugLogger.DebugLn(LogEnabled, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18);
{$ENDIF}
end;
procedure DebugLnEnter(LogGroup: PLazLoggerLogGroup; const s: string);
procedure DebugLnEnter(LogEnabled: TLazLoggerLogEnabled; const s: string);
begin
{$IFnDEF USED_BY_LAZLOGGER_DUMMY}
DebugLogger.DebugLnEnter(LogGroup, s);
DebugLogger.DebugLnEnter(LogEnabled, s);
{$ENDIF}
end;
procedure DebugLnEnter(LogGroup: PLazLoggerLogGroup; Args: array of const);
procedure DebugLnEnter(LogEnabled: TLazLoggerLogEnabled; Args: array of const);
begin
{$IFnDEF USED_BY_LAZLOGGER_DUMMY}
DebugLogger.DebugLnEnter(LogGroup, Args);
DebugLogger.DebugLnEnter(LogEnabled, Args);
{$ENDIF}
end;
procedure DebugLnEnter(LogGroup: PLazLoggerLogGroup; s: string; Args: array of const);
procedure DebugLnEnter(LogEnabled: TLazLoggerLogEnabled; s: string; Args: array of const);
begin
{$IFnDEF USED_BY_LAZLOGGER_DUMMY}
DebugLogger.DebugLnEnter(LogGroup, s, Args);
DebugLogger.DebugLnEnter(LogEnabled, s, Args);
{$ENDIF}
end;
procedure DebugLnEnter(LogGroup: PLazLoggerLogGroup; const s1, s2: string; const s3: string;
procedure DebugLnEnter(LogEnabled: TLazLoggerLogEnabled; const s1, s2: string; const s3: string;
const s4: string; const s5: string; const s6: string; const s7: string; const s8: string;
const s9: string; const s10: string; const s11: string; const s12: string;
const s13: string; const s14: string; const s15: string; const s16: string;
const s17: string; const s18: string);
begin
{$IFnDEF USED_BY_LAZLOGGER_DUMMY}
DebugLogger.DebugLnEnter(LogGroup, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18);
DebugLogger.DebugLnEnter(LogEnabled, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18);
{$ENDIF}
end;
procedure DebugLnExit(LogGroup: PLazLoggerLogGroup; const s: string);
procedure DebugLnExit(LogEnabled: TLazLoggerLogEnabled; const s: string);
begin
{$IFnDEF USED_BY_LAZLOGGER_DUMMY}
DebugLogger.DebugLnExit(LogGroup, s);
DebugLogger.DebugLnExit(LogEnabled, s);
{$ENDIF}
end;
procedure DebugLnExit(LogGroup: PLazLoggerLogGroup; Args: array of const);
procedure DebugLnExit(LogEnabled: TLazLoggerLogEnabled; Args: array of const);
begin
{$IFnDEF USED_BY_LAZLOGGER_DUMMY}
DebugLogger.DebugLnExit(LogGroup, Args);
DebugLogger.DebugLnExit(LogEnabled, Args);
{$ENDIF}
end;
procedure DebugLnExit(LogGroup: PLazLoggerLogGroup; s: string; Args: array of const);
procedure DebugLnExit(LogEnabled: TLazLoggerLogEnabled; s: string; Args: array of const);
begin
{$IFnDEF USED_BY_LAZLOGGER_DUMMY}
DebugLogger.DebugLnExit(LogGroup, s, Args);
DebugLogger.DebugLnExit(LogEnabled, s, Args);
{$ENDIF}
end;
procedure DebugLnExit(LogGroup: PLazLoggerLogGroup; const s1, s2: string; const s3: string;
procedure DebugLnExit(LogEnabled: TLazLoggerLogEnabled; const s1, s2: string; const s3: string;
const s4: string; const s5: string; const s6: string; const s7: string; const s8: string;
const s9: string; const s10: string; const s11: string; const s12: string;
const s13: string; const s14: string; const s15: string; const s16: string;
const s17: string; const s18: string);
begin
{$IFnDEF USED_BY_LAZLOGGER_DUMMY}
DebugLogger.DebugLnExit(LogGroup, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18);
DebugLogger.DebugLnExit(LogEnabled, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18);
{$ENDIF}
end;

View File

@ -41,42 +41,42 @@ procedure DebugLnExit (const s1, s2: string; const s3: string = '';
const s16: string = ''; const s17: string = ''; const s18: string = ''); inline; overload;
procedure DebuglnStack(LogGroup: PLazLoggerLogGroup; const s: string = '');
procedure DebuglnStack(LogEnabled: TLazLoggerLogEnabled; const s: string = '');
procedure DbgOut(LogGroup: PLazLoggerLogGroup; const s: string = ''); overload;
procedure DbgOut(LogGroup: PLazLoggerLogGroup; Args: array of const); overload;
procedure DbgOut(LogGroup: PLazLoggerLogGroup; const S: String; Args: array of const); overload;// similar to Format(s,Args)
procedure DbgOut(LogGroup: PLazLoggerLogGroup; const s1, s2: string; const s3: string = '';
procedure DbgOut(LogEnabled: TLazLoggerLogEnabled; const s: string = ''); overload;
procedure DbgOut(LogEnabled: TLazLoggerLogEnabled; Args: array of const); overload;
procedure DbgOut(LogEnabled: TLazLoggerLogEnabled; const S: String; Args: array of const); overload;// similar to Format(s,Args)
procedure DbgOut(LogEnabled: TLazLoggerLogEnabled; const s1, s2: string; const s3: string = '';
const s4: string = ''; const s5: string = ''; const s6: string = '';
const s7: string = ''; const s8: string = ''; const s9: string = '';
const s10: string = ''; const s11: string = ''; const s12: string = '';
const s13: string = ''; const s14: string = ''; const s15: string = '';
const s16: string = ''; const s17: string = ''; const s18: string = ''); overload;
procedure DebugLn(LogGroup: PLazLoggerLogGroup; const s: string = ''); overload;
procedure DebugLn(LogGroup: PLazLoggerLogGroup; Args: array of const); overload;
procedure DebugLn(LogGroup: PLazLoggerLogGroup; const S: String; Args: array of const); overload;// similar to Format(s,Args)
procedure DebugLn(LogGroup: PLazLoggerLogGroup; const s1, s2: string; const s3: string = '';
procedure DebugLn(LogEnabled: TLazLoggerLogEnabled; const s: string = ''); overload;
procedure DebugLn(LogEnabled: TLazLoggerLogEnabled; Args: array of const); overload;
procedure DebugLn(LogEnabled: TLazLoggerLogEnabled; const S: String; Args: array of const); overload;// similar to Format(s,Args)
procedure DebugLn(LogEnabled: TLazLoggerLogEnabled; const s1, s2: string; const s3: string = '';
const s4: string = ''; const s5: string = ''; const s6: string = '';
const s7: string = ''; const s8: string = ''; const s9: string = '';
const s10: string = ''; const s11: string = ''; const s12: string = '';
const s13: string = ''; const s14: string = ''; const s15: string = '';
const s16: string = ''; const s17: string = ''; const s18: string = ''); overload;
procedure DebugLnEnter(LogGroup: PLazLoggerLogGroup; const s: string = ''); overload;
procedure DebugLnEnter(LogGroup: PLazLoggerLogGroup; Args: array of const); overload;
procedure DebugLnEnter(LogGroup: PLazLoggerLogGroup; s: string; Args: array of const); overload;
procedure DebugLnEnter(LogGroup: PLazLoggerLogGroup; const s1, s2: string; const s3: string = '';
procedure DebugLnEnter(LogEnabled: TLazLoggerLogEnabled; const s: string = ''); overload;
procedure DebugLnEnter(LogEnabled: TLazLoggerLogEnabled; Args: array of const); overload;
procedure DebugLnEnter(LogEnabled: TLazLoggerLogEnabled; s: string; Args: array of const); overload;
procedure DebugLnEnter(LogEnabled: TLazLoggerLogEnabled; const s1, s2: string; const s3: string = '';
const s4: string = ''; const s5: string = ''; const s6: string = '';
const s7: string = ''; const s8: string = ''; const s9: string = '';
const s10: string = ''; const s11: string = ''; const s12: string = '';
const s13: string = ''; const s14: string = ''; const s15: string = '';
const s16: string = ''; const s17: string = ''; const s18: string = ''); overload;
procedure DebugLnExit(LogGroup: PLazLoggerLogGroup; const s: string = ''); overload;
procedure DebugLnExit(LogGroup: PLazLoggerLogGroup; Args: array of const); overload;
procedure DebugLnExit(LogGroup: PLazLoggerLogGroup; s: string; Args: array of const); overload;
procedure DebugLnExit(LogGroup: PLazLoggerLogGroup; const s1, s2: string; const s3: string = '';
procedure DebugLnExit(LogEnabled: TLazLoggerLogEnabled; const s: string = ''); overload;
procedure DebugLnExit(LogEnabled: TLazLoggerLogEnabled; Args: array of const); overload;
procedure DebugLnExit(LogEnabled: TLazLoggerLogEnabled; s: string; Args: array of const); overload;
procedure DebugLnExit(LogEnabled: TLazLoggerLogEnabled; const s1, s2: string; const s3: string = '';
const s4: string = ''; const s5: string = ''; const s6: string = '';
const s7: string = ''; const s8: string = ''; const s9: string = '';
const s10: string = ''; const s11: string = ''; const s12: string = '';

View File

@ -151,8 +151,8 @@ type
procedure IncreaseIndent; overload; override;
procedure DecreaseIndent; overload; override;
procedure IncreaseIndent(LogGroup: PLazLoggerLogGroup); overload; override;
procedure DecreaseIndent(LogGroup: PLazLoggerLogGroup); overload; override;
procedure IncreaseIndent(LogEnabled: TLazLoggerLogEnabled); overload; virtual;
procedure DecreaseIndent(LogEnabled: TLazLoggerLogEnabled); overload; virtual;
procedure IndentChanged; override;
procedure CreateIndent; virtual;
function GetBlockHandler(AIndex: Integer): TLazLoggerBlockHandler; override;
@ -654,28 +654,27 @@ begin
CreateIndent;
end;
procedure TLazLoggerFile.IncreaseIndent(LogGroup: PLazLoggerLogGroup);
procedure TLazLoggerFile.IncreaseIndent(LogEnabled: TLazLoggerLogEnabled);
begin
if (LogGroup <> nil) then begin
if (not LogGroup^.Enabled) then exit;
inc(LogGroup^.FOpenedIndents);
IncreaseIndent;
end
else
IncreaseIndent;
if not (LogEnabled.Enabled) then exit;
if (LogEnabled.Group <> nil) and (LogEnabled.Group^.Enabled) then
inc(LogEnabled.Group^.FOpenedIndents);
IncreaseIndent;
end;
procedure TLazLoggerFile.DecreaseIndent(LogGroup: PLazLoggerLogGroup);
procedure TLazLoggerFile.DecreaseIndent(LogEnabled: TLazLoggerLogEnabled);
begin
if (LogGroup <> nil) then begin
// close what was opened, even if now disabled
// only close, if opened by this group
if (LogGroup^.FOpenedIndents <= 0) then exit;
dec(LogGroup^.FOpenedIndents);
if (LogEnabled.Enabled) then begin
if LogEnabled.Group <> nil then
dec(LogEnabled.Group^.FOpenedIndents);
DecreaseIndent;
end
else
if (LogEnabled.Group <> nil) and (LogEnabled.Group^.FOpenedIndents > 0) then begin
dec(LogEnabled.Group^.FOpenedIndents);
DecreaseIndent;
end;
end;
procedure TLazLoggerFile.IndentChanged;

View File

@ -41,6 +41,18 @@ type
end;
PLazLoggerLogGroup = ^TLazLoggerLogGroup;
TLazLoggerLogEnabled = record
Enabled: Boolean;
Group: PLazLoggerLogGroup; // if only one group / remember nestlevel count
end;
operator := (g: PLazLoggerLogGroup): TLazLoggerLogEnabled;
operator := (g: Boolean): TLazLoggerLogEnabled;
operator and (g1, g2: TLazLoggerLogEnabled): TLazLoggerLogEnabled;
operator or (g1, g2: TLazLoggerLogEnabled): TLazLoggerLogEnabled;
type
TLazLoggerWriteTarget = (
lwtNone,
lwtStdOut, lwtStdErr,
@ -116,8 +128,8 @@ type
procedure IncreaseIndent; overload; virtual;
procedure DecreaseIndent; overload; virtual;
procedure IncreaseIndent({%H-}LogGroup: PLazLoggerLogGroup); overload; virtual;
procedure DecreaseIndent({%H-}LogGroup: PLazLoggerLogGroup); overload; virtual;
procedure IncreaseIndent({%H-}LogEnabled: TLazLoggerLogEnabled); overload; virtual;
procedure DecreaseIndent({%H-}LogEnabled: TLazLoggerLogEnabled); overload; virtual;
procedure IndentChanged; virtual;
function GetBlockHandler({%H-}AIndex: Integer): TLazLoggerBlockHandler; virtual;
@ -194,42 +206,42 @@ type
const s16: string = ''; const s17: string = ''; const s18: string = ''); overload;
procedure DebuglnStack(LogGroup: PLazLoggerLogGroup; const s: string = '');
procedure DebuglnStack(LogEnabled: TLazLoggerLogEnabled; const s: string = '');
procedure DbgOut(LogGroup: PLazLoggerLogGroup; const s: string = ''); overload;
procedure DbgOut(LogGroup: PLazLoggerLogGroup; Args: array of const); overload;
procedure DbgOut(LogGroup: PLazLoggerLogGroup; const S: String; Args: array of const); overload;// similar to Format(s,Args)
procedure DbgOut(LogGroup: PLazLoggerLogGroup; const s1, s2: string; const s3: string = '';
procedure DbgOut(LogEnabled: TLazLoggerLogEnabled; const s: string = ''); overload;
procedure DbgOut(LogEnabled: TLazLoggerLogEnabled; Args: array of const); overload;
procedure DbgOut(LogEnabled: TLazLoggerLogEnabled; const S: String; Args: array of const); overload;// similar to Format(s,Args)
procedure DbgOut(LogEnabled: TLazLoggerLogEnabled; const s1, s2: string; const s3: string = '';
const s4: string = ''; const s5: string = ''; const s6: string = '';
const s7: string = ''; const s8: string = ''; const s9: string = '';
const s10: string = ''; const s11: string = ''; const s12: string = '';
const s13: string = ''; const s14: string = ''; const s15: string = '';
const s16: string = ''; const s17: string = ''; const s18: string = ''); overload;
procedure DebugLn(LogGroup: PLazLoggerLogGroup; const s: string = ''); overload;
procedure DebugLn(LogGroup: PLazLoggerLogGroup; Args: array of const); overload;
procedure DebugLn(LogGroup: PLazLoggerLogGroup; const S: String; Args: array of const); overload;// similar to Format(s,Args)
procedure DebugLn(LogGroup: PLazLoggerLogGroup; const s1, s2: string; const s3: string = '';
procedure DebugLn(LogEnabled: TLazLoggerLogEnabled; const s: string = ''); overload;
procedure DebugLn(LogEnabled: TLazLoggerLogEnabled; Args: array of const); overload;
procedure DebugLn(LogEnabled: TLazLoggerLogEnabled; const S: String; Args: array of const); overload;// similar to Format(s,Args)
procedure DebugLn(LogEnabled: TLazLoggerLogEnabled; const s1, s2: string; const s3: string = '';
const s4: string = ''; const s5: string = ''; const s6: string = '';
const s7: string = ''; const s8: string = ''; const s9: string = '';
const s10: string = ''; const s11: string = ''; const s12: string = '';
const s13: string = ''; const s14: string = ''; const s15: string = '';
const s16: string = ''; const s17: string = ''; const s18: string = ''); overload;
procedure DebugLnEnter(LogGroup: PLazLoggerLogGroup; const s: string = ''); overload;
procedure DebugLnEnter(LogGroup: PLazLoggerLogGroup; Args: array of const); overload;
procedure DebugLnEnter(LogGroup: PLazLoggerLogGroup; s: string; Args: array of const); overload;
procedure DebugLnEnter(LogGroup: PLazLoggerLogGroup; const s1, s2: string; const s3: string = '';
procedure DebugLnEnter(LogEnabled: TLazLoggerLogEnabled; const s: string = ''); overload;
procedure DebugLnEnter(LogEnabled: TLazLoggerLogEnabled; Args: array of const); overload;
procedure DebugLnEnter(LogEnabled: TLazLoggerLogEnabled; s: string; Args: array of const); overload;
procedure DebugLnEnter(LogEnabled: TLazLoggerLogEnabled; const s1, s2: string; const s3: string = '';
const s4: string = ''; const s5: string = ''; const s6: string = '';
const s7: string = ''; const s8: string = ''; const s9: string = '';
const s10: string = ''; const s11: string = ''; const s12: string = '';
const s13: string = ''; const s14: string = ''; const s15: string = '';
const s16: string = ''; const s17: string = ''; const s18: string = ''); overload;
procedure DebugLnExit(LogGroup: PLazLoggerLogGroup; const s: string = ''); overload;
procedure DebugLnExit(LogGroup: PLazLoggerLogGroup; Args: array of const); overload;
procedure DebugLnExit(LogGroup: PLazLoggerLogGroup; s: string; Args: array of const); overload;
procedure DebugLnExit(LogGroup: PLazLoggerLogGroup; const s1, s2: string; const s3: string = '';
procedure DebugLnExit(LogEnabled: TLazLoggerLogEnabled; const s: string = ''); overload;
procedure DebugLnExit(LogEnabled: TLazLoggerLogEnabled; Args: array of const); overload;
procedure DebugLnExit(LogEnabled: TLazLoggerLogEnabled; s: string; Args: array of const); overload;
procedure DebugLnExit(LogEnabled: TLazLoggerLogEnabled; const s1, s2: string; const s3: string = '';
const s4: string = ''; const s5: string = ''; const s6: string = '';
const s7: string = ''; const s8: string = ''; const s9: string = '';
const s10: string = ''; const s11: string = ''; const s12: string = '';
@ -312,6 +324,42 @@ var // Using base TRefCountedObject, so if none of the functions is used in the
PrevLazLogger: TRefCountedObject = nil;
TheLazLoggerGroups: TRefCountedObject = nil;
operator := (g: PLazLoggerLogGroup): TLazLoggerLogEnabled;
begin
Result.Enabled := (g = nil) or (g^.Enabled);
Result.Group := g;
end;
operator := (g: Boolean): TLazLoggerLogEnabled;
begin
Result.Enabled := g;
Result.Group := nil;
end;
operator and(g1, g2: TLazLoggerLogEnabled): TLazLoggerLogEnabled;
begin
Result.Enabled := g1.Enabled and g2.Enabled;
if (g1.Group = nil) and g1.Enabled then
Result.Group := g2.Group
else
if (g2.Group = nil) and g2.Enabled then
Result.Group := g1.Group
else
Result.Group := nil;
end;
operator or(g1, g2: TLazLoggerLogEnabled): TLazLoggerLogEnabled;
begin
Result.Enabled := g1.Enabled or g2.Enabled;
if (g1.Group = nil) then
Result.Group := g2.Group
else
if (g2.Group = nil) then
Result.Group := g1.Group
else
Result.Group := nil;
end;
procedure CreateDebugLogger;
begin
if (TheLazLogger <> nil) then
@ -714,12 +762,12 @@ begin
//
end;
procedure TLazLogger.IncreaseIndent(LogGroup: PLazLoggerLogGroup);
procedure TLazLogger.IncreaseIndent(LogEnabled: TLazLoggerLogEnabled);
begin
//
end;
procedure TLazLogger.DecreaseIndent(LogGroup: PLazLoggerLogGroup);
procedure TLazLogger.DecreaseIndent(LogEnabled: TLazLoggerLogEnabled);
begin
//
end;
@ -982,133 +1030,133 @@ begin
DoDebugLn(s1+s2+s3+s4+s5+s6+s7+s8+s9+s10+s11+s12+s13+s14+s15+s16+s17+s18);
end;
procedure TLazLogger.DebuglnStack(LogGroup: PLazLoggerLogGroup; const s: string);
procedure TLazLogger.DebuglnStack(LogEnabled: TLazLoggerLogEnabled; const s: string);
begin
if (LogGroup <> nil) and (not LogGroup^.Enabled) then exit;
if not LogEnabled.Enabled then exit;
DebuglnStack(s);
end;
procedure TLazLogger.DbgOut(LogGroup: PLazLoggerLogGroup; const s: string);
procedure TLazLogger.DbgOut(LogEnabled: TLazLoggerLogEnabled; const s: string);
begin
if (LogGroup <> nil) and (not LogGroup^.Enabled) then exit;
if not LogEnabled.Enabled then exit;
DoDbgOut(s);
end;
procedure TLazLogger.DbgOut(LogGroup: PLazLoggerLogGroup; Args: array of const);
procedure TLazLogger.DbgOut(LogEnabled: TLazLoggerLogEnabled; Args: array of const);
begin
if (LogGroup <> nil) and (not LogGroup^.Enabled) then exit;
if not LogEnabled.Enabled then exit;
DoDbgOut(ArgsToString(Args));
end;
procedure TLazLogger.DbgOut(LogGroup: PLazLoggerLogGroup; const S: String;
procedure TLazLogger.DbgOut(LogEnabled: TLazLoggerLogEnabled; const S: String;
Args: array of const);
begin
if (LogGroup <> nil) and (not LogGroup^.Enabled) then exit;
if not LogEnabled.Enabled then exit;
DoDbgOut(Format(S, Args));
end;
procedure TLazLogger.DbgOut(LogGroup: PLazLoggerLogGroup; const s1, s2: string;
procedure TLazLogger.DbgOut(LogEnabled: TLazLoggerLogEnabled; const s1, s2: string;
const s3: string; const s4: string; const s5: string; const s6: string; const s7: string;
const s8: string; const s9: string; const s10: string; const s11: string; const s12: string;
const s13: string; const s14: string; const s15: string; const s16: string;
const s17: string; const s18: string);
begin
if (LogGroup <> nil) and (not LogGroup^.Enabled) then exit;
if not LogEnabled.Enabled then exit;
DoDbgOut(s1+s2+s3+s4+s5+s6+s7+s8+s9+s10+s11+s12+s13+s14+s15+s16+s17+s18);
end;
procedure TLazLogger.DebugLn(LogGroup: PLazLoggerLogGroup; const s: string);
procedure TLazLogger.DebugLn(LogEnabled: TLazLoggerLogEnabled; const s: string);
begin
if (LogGroup <> nil) and (not LogGroup^.Enabled) then exit;
if not LogEnabled.Enabled then exit;
DoDebugLn(s);
end;
procedure TLazLogger.DebugLn(LogGroup: PLazLoggerLogGroup; Args: array of const);
procedure TLazLogger.DebugLn(LogEnabled: TLazLoggerLogEnabled; Args: array of const);
begin
if (LogGroup <> nil) and (not LogGroup^.Enabled) then exit;
if not LogEnabled.Enabled then exit;
DoDebugLn(ArgsToString(Args));
end;
procedure TLazLogger.DebugLn(LogGroup: PLazLoggerLogGroup; const S: String;
procedure TLazLogger.DebugLn(LogEnabled: TLazLoggerLogEnabled; const S: String;
Args: array of const);
begin
if (LogGroup <> nil) and (not LogGroup^.Enabled) then exit;
if not LogEnabled.Enabled then exit;
DoDebugLn(Format(S, Args));
end;
procedure TLazLogger.DebugLn(LogGroup: PLazLoggerLogGroup; const s1, s2: string;
procedure TLazLogger.DebugLn(LogEnabled: TLazLoggerLogEnabled; const s1, s2: string;
const s3: string; const s4: string; const s5: string; const s6: string; const s7: string;
const s8: string; const s9: string; const s10: string; const s11: string; const s12: string;
const s13: string; const s14: string; const s15: string; const s16: string;
const s17: string; const s18: string);
begin
if (LogGroup <> nil) and (not LogGroup^.Enabled) then exit;
if not LogEnabled.Enabled then exit;
DoDebugLn(s1+s2+s3+s4+s5+s6+s7+s8+s9+s10+s11+s12+s13+s14+s15+s16+s17+s18);
end;
procedure TLazLogger.DebugLnEnter(LogGroup: PLazLoggerLogGroup; const s: string);
procedure TLazLogger.DebugLnEnter(LogEnabled: TLazLoggerLogEnabled; const s: string);
begin
if not( (LogGroup <> nil) and (not LogGroup^.Enabled) ) then
if LogEnabled.Enabled then
DoDebugLn(s);
IncreaseIndent(LogGroup);
IncreaseIndent(LogEnabled);
end;
procedure TLazLogger.DebugLnEnter(LogGroup: PLazLoggerLogGroup; Args: array of const);
procedure TLazLogger.DebugLnEnter(LogEnabled: TLazLoggerLogEnabled; Args: array of const);
begin
if not( (LogGroup <> nil) and (not LogGroup^.Enabled) ) then
if LogEnabled.Enabled then
DoDebugLn(ArgsToString(Args));
IncreaseIndent(LogGroup);
IncreaseIndent(LogEnabled);
end;
procedure TLazLogger.DebugLnEnter(LogGroup: PLazLoggerLogGroup; s: string;
procedure TLazLogger.DebugLnEnter(LogEnabled: TLazLoggerLogEnabled; s: string;
Args: array of const);
begin
if not( (LogGroup <> nil) and (not LogGroup^.Enabled) ) then
if LogEnabled.Enabled then
DoDebugLn(Format(S, Args));
IncreaseIndent(LogGroup);
IncreaseIndent(LogEnabled);
end;
procedure TLazLogger.DebugLnEnter(LogGroup: PLazLoggerLogGroup; const s1, s2: string;
procedure TLazLogger.DebugLnEnter(LogEnabled: TLazLoggerLogEnabled; const s1, s2: string;
const s3: string; const s4: string; const s5: string; const s6: string; const s7: string;
const s8: string; const s9: string; const s10: string; const s11: string; const s12: string;
const s13: string; const s14: string; const s15: string; const s16: string;
const s17: string; const s18: string);
begin
if not( (LogGroup <> nil) and (not LogGroup^.Enabled) ) then
if LogEnabled.Enabled then
DoDebugLn(s1+s2+s3+s4+s5+s6+s7+s8+s9+s10+s11+s12+s13+s14+s15+s16+s17+s18);
IncreaseIndent(LogGroup);
IncreaseIndent(LogEnabled);
end;
procedure TLazLogger.DebugLnExit(LogGroup: PLazLoggerLogGroup; const s: string);
procedure TLazLogger.DebugLnExit(LogEnabled: TLazLoggerLogEnabled; const s: string);
begin
DecreaseIndent(LogGroup);
if (LogGroup <> nil) and (not LogGroup^.Enabled) then exit;
DecreaseIndent(LogEnabled);
if not LogEnabled.Enabled then exit;
DoDebugLn(s);
end;
procedure TLazLogger.DebugLnExit(LogGroup: PLazLoggerLogGroup; Args: array of const);
procedure TLazLogger.DebugLnExit(LogEnabled: TLazLoggerLogEnabled; Args: array of const);
begin
DecreaseIndent(LogGroup);
if (LogGroup <> nil) and (not LogGroup^.Enabled) then exit;
DecreaseIndent(LogEnabled);
if not LogEnabled.Enabled then exit;
DoDebugLn(ArgsToString(Args));
end;
procedure TLazLogger.DebugLnExit(LogGroup: PLazLoggerLogGroup; s: string;
procedure TLazLogger.DebugLnExit(LogEnabled: TLazLoggerLogEnabled; s: string;
Args: array of const);
begin
DecreaseIndent(LogGroup);
if (LogGroup <> nil) and (not LogGroup^.Enabled) then exit;
DecreaseIndent(LogEnabled);
if not LogEnabled.Enabled then exit;
DoDebugLn(Format(S, Args));
end;
procedure TLazLogger.DebugLnExit(LogGroup: PLazLoggerLogGroup; const s1, s2: string;
procedure TLazLogger.DebugLnExit(LogEnabled: TLazLoggerLogEnabled; const s1, s2: string;
const s3: string; const s4: string; const s5: string; const s6: string; const s7: string;
const s8: string; const s9: string; const s10: string; const s11: string; const s12: string;
const s13: string; const s14: string; const s15: string; const s16: string;
const s17: string; const s18: string);
begin
DecreaseIndent(LogGroup);
if (LogGroup <> nil) and (not LogGroup^.Enabled) then exit;
DecreaseIndent(LogEnabled);
if not LogEnabled.Enabled then exit;
DoDebugLn(s1+s2+s3+s4+s5+s6+s7+s8+s9+s10+s11+s12+s13+s14+s15+s16+s17+s18);
end;

View File

@ -41,6 +41,15 @@ type
end;
PLazLoggerLogGroup = ^TLazLoggerLogGroup;
TLazLoggerLogEnabled = record end;
operator := (g: PLazLoggerLogGroup): TLazLoggerLogEnabled;
operator := (g: Boolean): TLazLoggerLogEnabled;
operator and (g1, g2: TLazLoggerLogEnabled): TLazLoggerLogEnabled;
operator or (g1, g2: TLazLoggerLogEnabled): TLazLoggerLogEnabled;
type
TLazLoggerWriteEvent = procedure (Sender: TObject; S: string; var Handled: Boolean) of object;
@ -147,42 +156,42 @@ type
const {%H-}s16: string = ''; const {%H-}s17: string = ''; const {%H-}s18: string = ''); overload;
procedure DebuglnStack({%H-}LogGroup: PLazLoggerLogGroup; const {%H-}s: string = '');
procedure DebuglnStack({%H-}LogEnabled: TLazLoggerLogEnabled; const {%H-}s: string = '');
procedure DbgOut({%H-}LogGroup: PLazLoggerLogGroup; const {%H-}s: string = ''); overload;
procedure DbgOut({%H-}LogGroup: PLazLoggerLogGroup; {%H-}Args: array of const); overload;
procedure DbgOut({%H-}LogGroup: PLazLoggerLogGroup; const {%H-}S: String; {%H-}Args: array of const); overload;// similar to Format(s,Args)
procedure DbgOut({%H-}LogGroup: PLazLoggerLogGroup; const {%H-}s1, {%H-}s2: string; const {%H-}s3: string = '';
procedure DbgOut({%H-}LogEnabled: TLazLoggerLogEnabled; const {%H-}s: string = ''); overload;
procedure DbgOut({%H-}LogEnabled: TLazLoggerLogEnabled; {%H-}Args: array of const); overload;
procedure DbgOut({%H-}LogEnabled: TLazLoggerLogEnabled; const {%H-}S: String; {%H-}Args: array of const); overload;// similar to Format(s,Args)
procedure DbgOut({%H-}LogEnabled: TLazLoggerLogEnabled; const {%H-}s1, {%H-}s2: string; const {%H-}s3: string = '';
const {%H-}s4: string = ''; const {%H-}s5: string = ''; const {%H-}s6: string = '';
const {%H-}s7: string = ''; const {%H-}s8: string = ''; const {%H-}s9: string = '';
const {%H-}s10: string = ''; const {%H-}s11: string = ''; const {%H-}s12: string = '';
const {%H-}s13: string = ''; const {%H-}s14: string = ''; const {%H-}s15: string = '';
const {%H-}s16: string = ''; const {%H-}s17: string = ''; const {%H-}s18: string = ''); overload;
procedure DebugLn({%H-}LogGroup: PLazLoggerLogGroup; const {%H-}s: string = ''); overload;
procedure DebugLn({%H-}LogGroup: PLazLoggerLogGroup; {%H-}Args: array of const); overload;
procedure DebugLn({%H-}LogGroup: PLazLoggerLogGroup; const {%H-}S: String; {%H-}Args: array of const); overload;// similar to Format(s,Args)
procedure DebugLn({%H-}LogGroup: PLazLoggerLogGroup; const {%H-}s1, {%H-}s2: string; const {%H-}s3: string = '';
procedure DebugLn({%H-}LogEnabled: TLazLoggerLogEnabled; const {%H-}s: string = ''); overload;
procedure DebugLn({%H-}LogEnabled: TLazLoggerLogEnabled; {%H-}Args: array of const); overload;
procedure DebugLn({%H-}LogEnabled: TLazLoggerLogEnabled; const {%H-}S: String; {%H-}Args: array of const); overload;// similar to Format(s,Args)
procedure DebugLn({%H-}LogEnabled: TLazLoggerLogEnabled; const {%H-}s1, {%H-}s2: string; const {%H-}s3: string = '';
const {%H-}s4: string = ''; const {%H-}s5: string = ''; const {%H-}s6: string = '';
const {%H-}s7: string = ''; const {%H-}s8: string = ''; const {%H-}s9: string = '';
const {%H-}s10: string = ''; const {%H-}s11: string = ''; const {%H-}s12: string = '';
const {%H-}s13: string = ''; const {%H-}s14: string = ''; const {%H-}s15: string = '';
const {%H-}s16: string = ''; const {%H-}s17: string = ''; const {%H-}s18: string = ''); overload;
procedure DebugLnEnter({%H-}LogGroup: PLazLoggerLogGroup; const {%H-}s: string = ''); overload;
procedure DebugLnEnter({%H-}LogGroup: PLazLoggerLogGroup; {%H-}Args: array of const); overload;
procedure DebugLnEnter({%H-}LogGroup: PLazLoggerLogGroup; {%H-}s: string; {%H-}Args: array of const); overload;
procedure DebugLnEnter({%H-}LogGroup: PLazLoggerLogGroup; const {%H-}s1, {%H-}s2: string; const {%H-}s3: string = '';
procedure DebugLnEnter({%H-}LogEnabled: TLazLoggerLogEnabled; const {%H-}s: string = ''); overload;
procedure DebugLnEnter({%H-}LogEnabled: TLazLoggerLogEnabled; {%H-}Args: array of const); overload;
procedure DebugLnEnter({%H-}LogEnabled: TLazLoggerLogEnabled; {%H-}s: string; {%H-}Args: array of const); overload;
procedure DebugLnEnter({%H-}LogEnabled: TLazLoggerLogEnabled; const {%H-}s1, {%H-}s2: string; const {%H-}s3: string = '';
const {%H-}s4: string = ''; const {%H-}s5: string = ''; const {%H-}s6: string = '';
const {%H-}s7: string = ''; const {%H-}s8: string = ''; const {%H-}s9: string = '';
const {%H-}s10: string = ''; const {%H-}s11: string = ''; const {%H-}s12: string = '';
const {%H-}s13: string = ''; const {%H-}s14: string = ''; const {%H-}s15: string = '';
const {%H-}s16: string = ''; const {%H-}s17: string = ''; const {%H-}s18: string = ''); overload;
procedure DebugLnExit({%H-}LogGroup: PLazLoggerLogGroup; const {%H-}s: string = ''); overload;
procedure DebugLnExit({%H-}LogGroup: PLazLoggerLogGroup; {%H-}Args: array of const); overload;
procedure DebugLnExit({%H-}LogGroup: PLazLoggerLogGroup; {%H-}s: string; {%H-}Args: array of const); overload;
procedure DebugLnExit({%H-}LogGroup: PLazLoggerLogGroup; const {%H-}s1, {%H-}s2: string; const {%H-}s3: string = '';
procedure DebugLnExit({%H-}LogEnabled: TLazLoggerLogEnabled; const {%H-}s: string = ''); overload;
procedure DebugLnExit({%H-}LogEnabled: TLazLoggerLogEnabled; {%H-}Args: array of const); overload;
procedure DebugLnExit({%H-}LogEnabled: TLazLoggerLogEnabled; {%H-}s: string; {%H-}Args: array of const); overload;
procedure DebugLnExit({%H-}LogEnabled: TLazLoggerLogEnabled; const {%H-}s1, {%H-}s2: string; const {%H-}s3: string = '';
const {%H-}s4: string = ''; const {%H-}s5: string = ''; const {%H-}s6: string = '';
const {%H-}s7: string = ''; const {%H-}s8: string = ''; const {%H-}s9: string = '';
const {%H-}s10: string = ''; const {%H-}s11: string = ''; const {%H-}s12: string = '';
@ -225,6 +234,26 @@ var // Using base TRefCountedObject, so if none of the functions is used in the
{$I LazLoggerImpl.inc}
{$pop}
operator := (g: PLazLoggerLogGroup): TLazLoggerLogEnabled;
begin
Result := Default(TLazLoggerLogEnabled);
end;
operator := (g: Boolean): TLazLoggerLogEnabled;
begin
Result := Default(TLazLoggerLogEnabled);
end;
operator and(g1, g2: TLazLoggerLogEnabled): TLazLoggerLogEnabled;
begin
Result := Default(TLazLoggerLogEnabled);
end;
operator or(g1, g2: TLazLoggerLogEnabled): TLazLoggerLogEnabled;
begin
Result := Default(TLazLoggerLogEnabled);
end;
procedure CreateDebugLogger;
begin
if (TheLazLogger <> nil) then
@ -425,28 +454,28 @@ begin
end;
procedure TLazLogger.DebuglnStack(LogGroup: PLazLoggerLogGroup; const s: string);
procedure TLazLogger.DebuglnStack(LogEnabled: TLazLoggerLogEnabled; const s: string);
begin
end;
procedure TLazLogger.DbgOut(LogGroup: PLazLoggerLogGroup; const s: string);
procedure TLazLogger.DbgOut(LogEnabled: TLazLoggerLogEnabled; const s: string);
begin
end;
procedure TLazLogger.DbgOut(LogGroup: PLazLoggerLogGroup; Args: array of const);
procedure TLazLogger.DbgOut(LogEnabled: TLazLoggerLogEnabled; Args: array of const);
begin
end;
procedure TLazLogger.DbgOut(LogGroup: PLazLoggerLogGroup; const S: String;
procedure TLazLogger.DbgOut(LogEnabled: TLazLoggerLogEnabled; const S: String;
Args: array of const);
begin
end;
procedure TLazLogger.DbgOut(LogGroup: PLazLoggerLogGroup; const s1, s2: string;
procedure TLazLogger.DbgOut(LogEnabled: TLazLoggerLogEnabled; const s1, s2: string;
const s3: string; const s4: string; const s5: string; const s6: string; const s7: string;
const s8: string; const s9: string; const s10: string; const s11: string; const s12: string;
const s13: string; const s14: string; const s15: string; const s16: string;
@ -455,23 +484,23 @@ begin
end;
procedure TLazLogger.DebugLn(LogGroup: PLazLoggerLogGroup; const s: string);
procedure TLazLogger.DebugLn(LogEnabled: TLazLoggerLogEnabled; const s: string);
begin
end;
procedure TLazLogger.DebugLn(LogGroup: PLazLoggerLogGroup; Args: array of const);
procedure TLazLogger.DebugLn(LogEnabled: TLazLoggerLogEnabled; Args: array of const);
begin
end;
procedure TLazLogger.DebugLn(LogGroup: PLazLoggerLogGroup; const S: String;
procedure TLazLogger.DebugLn(LogEnabled: TLazLoggerLogEnabled; const S: String;
Args: array of const);
begin
end;
procedure TLazLogger.DebugLn(LogGroup: PLazLoggerLogGroup; const s1, s2: string;
procedure TLazLogger.DebugLn(LogEnabled: TLazLoggerLogEnabled; const s1, s2: string;
const s3: string; const s4: string; const s5: string; const s6: string; const s7: string;
const s8: string; const s9: string; const s10: string; const s11: string; const s12: string;
const s13: string; const s14: string; const s15: string; const s16: string;
@ -480,23 +509,23 @@ begin
end;
procedure TLazLogger.DebugLnEnter(LogGroup: PLazLoggerLogGroup; const s: string);
procedure TLazLogger.DebugLnEnter(LogEnabled: TLazLoggerLogEnabled; const s: string);
begin
end;
procedure TLazLogger.DebugLnEnter(LogGroup: PLazLoggerLogGroup; Args: array of const);
procedure TLazLogger.DebugLnEnter(LogEnabled: TLazLoggerLogEnabled; Args: array of const);
begin
end;
procedure TLazLogger.DebugLnEnter(LogGroup: PLazLoggerLogGroup; s: string;
procedure TLazLogger.DebugLnEnter(LogEnabled: TLazLoggerLogEnabled; s: string;
Args: array of const);
begin
end;
procedure TLazLogger.DebugLnEnter(LogGroup: PLazLoggerLogGroup; const s1, s2: string;
procedure TLazLogger.DebugLnEnter(LogEnabled: TLazLoggerLogEnabled; const s1, s2: string;
const s3: string; const s4: string; const s5: string; const s6: string; const s7: string;
const s8: string; const s9: string; const s10: string; const s11: string; const s12: string;
const s13: string; const s14: string; const s15: string; const s16: string;
@ -505,23 +534,23 @@ begin
end;
procedure TLazLogger.DebugLnExit(LogGroup: PLazLoggerLogGroup; const s: string);
procedure TLazLogger.DebugLnExit(LogEnabled: TLazLoggerLogEnabled; const s: string);
begin
end;
procedure TLazLogger.DebugLnExit(LogGroup: PLazLoggerLogGroup; Args: array of const);
procedure TLazLogger.DebugLnExit(LogEnabled: TLazLoggerLogEnabled; Args: array of const);
begin
end;
procedure TLazLogger.DebugLnExit(LogGroup: PLazLoggerLogGroup; s: string;
procedure TLazLogger.DebugLnExit(LogEnabled: TLazLoggerLogEnabled; s: string;
Args: array of const);
begin
end;
procedure TLazLogger.DebugLnExit(LogGroup: PLazLoggerLogGroup; const s1, s2: string;
procedure TLazLogger.DebugLnExit(LogEnabled: TLazLoggerLogEnabled; const s1, s2: string;
const s3: string; const s4: string; const s5: string; const s6: string; const s7: string;
const s8: string; const s9: string; const s10: string; const s11: string; const s12: string;
const s13: string; const s14: string; const s15: string; const s16: string;