Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

Renegade.Logger

Logger Implementation

View on GitHub

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate this project.

README

Renegade Logger Class

Logger class for Free Pascal

Usage

pascal
uses
  Renegade.Logger,
  { Implement Logger.LoggingHandlerInterface 
  (Logger.HandlerInterface unit)
   to create your own. }
  Logger.SysLogHandler,
  // or
  Logger.StreamHandler,
  Logger.ConsoleHandler,
  Logger.FileHandler,
  Logger.NullHandler,
  //... other units;

var
  LogHandler : SysLogHandler;
  Log : RTLogger;
begin
  LogHandler := SysLogHandler.Create(LOG_DAEMON);
  Log := RTLogger.Create(LogHandler); 
  { Context is an array of consts
    It gets turned into json object in the log.
    It should be in the format ['Key', 'Value', 'Otherkey', 'Value']
    Put any context to your log messages here.
    e.g. ['UserID', User.getId(), 'Menu', Menu.getName()] }  
  Log.Info('Testing', ['Context', 'LogContext']); 
  Log.Debug('Debug Log', []);
  Log.Log(LOG_NOTICE, 'Notice Log', []);
  {
      Other Shortcuts
      Log.Emergency
      Log.Alert
      Log.Critical
      Log.Error
      Log.Warning
      Log.Notice

  } 
  Log.Free;
  LogHandler.Free;
end.