Sample code for 30+ languages & platforms
Delphi DLL

Enter/Leave Context in Logging

Demonstrates EnterContext and LeaveContext using the Chilkat Log API.

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Log;

...

procedure TForm1.Button1Click(Sender: TObject);
var
log: HCkLog;

begin
log := CkLog_Create();

// Initialize the log object with an initial context tag:
CkLog_Clear(log,'myLog');

// Add some information..
CkLog_LogInfo(log,'Hello, I''m here...');

// Open a sub-context
CkLog_EnterContext(log,'abc');

// New information is now logged within the "abc" context.
CkLog_LogInfo(log,'This is inside the abc context');
CkLog_LogError(log,'File not found.');

// Perhaps open a new context...
CkLog_EnterContext(log,'fileInfo');
CkLog_LogData(log,'filename','something.txt');
CkLog_LogData(log,'path','/somedir/xyz');
CkLog_LeaveContext(log);

// Close the "abc" context.
CkLog_LeaveContext(log);

// Examine the content of the log:
Memo1.Lines.Add(CkLog__lastErrorText(log));

// This is the output:

// myLog:
//   Hello, I'm here...
//   abc:
//     This is inside the abc context
//     File not found.
//     fileInfo:
//       filename: something.txt
//       path: /somedir/xyz
//     --fileInfo
//   --abc
// --myLog

CkLog_Dispose(log);

end;