Logger
Unit: Logger
File-based debug logging system.
Constants
const
LogLevelError = 0;
LogLevelWarning = 1;
LogLevelInfo = 2;
LogLevelDebug = 3;
Functions
procedure InitLogger(const FilePath: string; Level: Byte);
procedure CloseLogger;
procedure LogError(const Msg: string);
procedure LogWarning(const Msg: string);
procedure LogInfo(const Msg: string);
procedure LogDebug(const Msg: string);
Example
uses Logger;
begin
InitLogger('DEBUG.LOG', LogLevelDebug);
LogInfo('Application started');
LogDebug('Loading config...');
if Error then
LogError('Failed to load CONFIG.INI');
CloseLogger;
end;
Log Format
[INFO] Application started
[DEBUG] Loading config...
[ERROR] Failed to load CONFIG.INI
Critical Warning
⚠️ DO NOT use in render loops!
File I/O causes Runtime Error 202 (stack overflow) at 60 FPS.
{ BAD - Stack overflow! }
while Running do
begin
LogDebug('Frame rendered'); { ❌ File I/O every frame }
RenderFrame;
end;
{ GOOD - Startup/shutdown only }
InitLogger('DEBUG.LOG', LogLevelInfo);
LogInfo('Game started'); { ✅ Once at startup }
{ ... game loop ... }
LogInfo('Game exiting'); { ✅ Once at shutdown }
CloseLogger;
Notes
Level filter: Only logs messages >= specified level
LogLevelError (0) = errors only
LogLevelDebug (3) = all messages
Use for startup/shutdown diagnostics only