Ceci est une ancienne révision du document !


LazLogger / DebugLn

Lazarus permet d'utiliser au sein de son application un systéme de log grâce aux unités LazLogger, LazLoggerBase et LazLoggerDummy.

Les procedures

DebugLn / DebugLnEnter / DebugLnExit

DbgOut

Interception d'un DebugLn

Il peut être utile d'intercepter la procédure DebugLn pour l'afficher au sein de l'application

  1. On déclare une procedure de type TLazLoggerWriteEvent = procedure(Sender: TObject; S: string; var Handled: Boolean) of object;
  2. On defini la property DebugLogger.OnDebugLn:=@MaProcedure;
  3. On a accés au log contenu dans la variable S
uses
   ..., lazlogger,  ...
type
   TForm1 = class(TForm)
          ...
	  MMDbg: TMemo; // Le TMemo qui recevra les logs
	  ... 
	  procedure FormCreate(Sender: TObject);
   private
      procedure ReceptDebugLn(Sender: TObject; S: string; var Handled: Boolean); // La procedure d'interception
   public
   ...
   end;
var
   Form1: TForm1;
implementation
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
   DebugLogger.OnDebugLn:=@ReceptDebugLn;
end;
 
procedure TForm1.ReceptDebugLn(Sender: TObject; S: string; var Handled: Boolean);
begin
  MMDbg.Lines.Add(S);
end;

Sources

Vous pourriez laisser un commentaire si vous étiez connecté.