Unit Logging
Return to Unit Reference
Description
Ultibo Logging Interface unit
Constants
LOGGING_*
LOGGING_NAME_PREFIX = 'Logging';
|
Name prefix for Logging Devices |
LOGGING_THREAD_NAME = 'Logging';
|
Thread name for Logging threads |
LOGGING_THREAD_PRIORITY = THREAD_PRIORITY_NORMAL;
|
Thread priority for Logging threads |
LOGGING_TYPE_*
LOGGING_TYPE_NONE = 0;
|
|
LOGGING_TYPE_CONSOLE = 1;
|
|
LOGGING_TYPE_FILE = 2;
|
|
LOGGING_TYPE_SYSLOG = 3;
|
|
LOGGING_TYPE_SERIAL = 4;
|
|
LOGGING_TYPE_MAX = 4;
|
LOGGING_STATE_*
LOGGING_STATE_DISABLED = 0;
|
|
LOGGING_STATE_ENABLED = 1;
|
|
LOGGING_STATE_MAX = 1;
|
LOGGING_FLAG_*
LOGGING_FLAG_NONE = $00000000;
|
CONSOLE_LOGGING_*
CONSOLE_LOGGING_DESCRIPTION = 'Console Logging';
|
Type definitions
Logging entry
PLoggingEntry = ^TLoggingEntry;
TLoggingEntry = record
Note: Overlaid on TMessage to avoid memory allocation on each output | |
Data:String;
|
TMessage.Msg:PtrUInt |
Reserved1:PtrUInt;
|
TMessage.wParam:PtrUInt |
Reserved2:PtrInt;
|
TMessage.lParam:PtrInt |
Reserved3:LongWord;
|
TMessage.Time:LongWord |
Logging entry ex
PLoggingEntryEx = ^TLoggingEntryEx;
TLoggingEntryEx = record
Note: Overlaid on TMessage to avoid memory allocation on each output | |
Content:String;
|
TMessage.Msg:PtrUInt |
Tag:String;
|
TMessage.wParam:PtrUInt |
Severity:PtrInt;
|
TMessage.lParam:PtrInt |
Facility:LongWord;
|
TMessage.Time:LongWord |
Logging enumeration callback
TLoggingEnumerate = function(Logging:PLoggingDevice; Data:Pointer):LongWord;
|
Logging notification callback
TLoggingNotification = function(Device:PDevice; Data:Pointer; Notification:LongWord):LongWord;
|
Logging device start
TLoggingDeviceStart = function(Logging:PLoggingDevice):LongWord;
|
Logging device stop
TLoggingDeviceStop = function(Logging:PLoggingDevice):LongWord;
|
Logging device output
TLoggingDeviceOutput = function(Logging:PLoggingDevice; const Data:String):LongWord;
|
Logging device output ex
TLoggingDeviceOutputEx = function(Logging:PLoggingDevice; Facility,Severity:LongWord; const Tag,Content:String):LongWord;
|
Syslog compatible output |
Logging device get target
TLoggingDeviceGetTarget = function(Logging:PLoggingDevice):String;
|
Logging device set target
TLoggingDeviceSetTarget = function(Logging:PLoggingDevice; const Target:String):LongWord;
|
Logging device
PLoggingDevice = ^TLoggingDevice;
TLoggingDevice = record
Device Properties | |
Device:TDevice;
|
The Device entry for this Logging device |
Logging Properties | |
LoggingId:LongWord;
|
Unique Id of this Logging device in the Logging device table |
LoggingState:LongWord;
|
Logging device state (eg LOGGING_STATE_ENABLED) |
DeviceStart:TLoggingDeviceStart;
|
A device specific DeviceStart method implementing a standard logging device interface (Or nil if the default method is suitable) |
DeviceStop:TLoggingDeviceStop;
|
A device specific DeviceStop method implementing a standard logging device interface (Or nil if the default method is suitable) |
DeviceOutput:TLoggingDeviceOutput;
|
A device specific DeviceOutput method implementing a standard logging device interface |
DeviceOutputEx:TLoggingDeviceOutputEx;
|
A device specific DeviceOutputEx method implementing a standard logging device interface |
DeviceGetTarget:TLoggingDeviceGetTarget;
|
A device specific DeviceGetTarget method implementing a standard logging device interface (Or nil if the default method is suitable) |
DeviceSetTarget:TLoggingDeviceSetTarget;
|
A device specific DeviceSetTarget method implementing a standard logging device interface (Or nil if the default method is suitable) |
Statistics Properties | |
OutputCount:LongWord;
|
|
Driver Properties | |
Lock:TMutexHandle;
|
Device lock |
Handle:THandle;
|
Device output handle |
Target:String;
|
Device output target |
Default:LongBool;
|
Device can be the default logging device |
Internal Properties | |
Prev:PLoggingDevice;
|
Previous entry in Logging device table |
Next:PLoggingDevice;
|
Next entry in Logging device table |
Console logging
PConsoleLogging = ^TConsoleLogging;
TConsoleLogging = record
Logging Properties | |
Logging:TLoggingDevice;
|
|
Console Properties | |
Console:PConsoleDevice;
|
The console device for logging output |
Window:TWindowHandle;
|
The console window for logging output |
Existing:LongBool;
|
True if the console window already existed when logging started |
Public variables
None defined
Function declarations
Initialization functions
procedure LoggingInit;
Note | None documented |
---|
function LoggingExecute(Parameter:Pointer):PtrInt;
Note | None documented |
---|
Logging functions
function LoggingDeviceStart(Logging:PLoggingDevice):LongWord;
Note | None documented |
---|
function LoggingDeviceStop(Logging:PLoggingDevice):LongWord;
Note | None documented |
---|
function LoggingDeviceOutput(Logging:PLoggingDevice; const Data:String):LongWord;
Note | None documented |
---|
function LoggingDeviceOutputEx(Logging:PLoggingDevice; Facility,Severity:LongWord; const Tag,Content:String):LongWord;
Note | None documented |
---|
function LoggingDeviceGetTarget(Logging:PLoggingDevice):String;
Note | None documented |
---|
function LoggingDeviceSetTarget(Logging:PLoggingDevice; const Target:String):LongWord;
Note | None documented |
---|
function LoggingDeviceCreate(Default:Boolean):PLoggingDevice;
Default | If true allow the new device the default logging device if there is no current default |
---|---|
Return | Pointer to new Logging device entry or nil if Logging device could not be created |
function LoggingDeviceCreateEx(Size:LongWord; Default:Boolean):PLoggingDevice;
Size | Size in bytes to allocate for new Logging (Including the Logging entry) |
---|---|
Default | If true allow the new device the default logging device if there is no current default |
Return | Pointer to new Logging device entry or nil if Logging device could not be created |
function LoggingDeviceDestroy(Logging:PLoggingDevice):LongWord;
Note | None documented |
---|
function LoggingDeviceRegister(Logging:PLoggingDevice):LongWord;
Note | None documented |
---|
function LoggingDeviceDeregister(Logging:PLoggingDevice):LongWord;
Note | None documented |
---|
function LoggingDeviceFind(LoggingId:LongWord):PLoggingDevice;
Note | None documented |
---|
function LoggingDeviceFindByType(LoggingType:LongWord):PLoggingDevice;
Note | None documented |
---|
function LoggingDeviceFindByDevice(Device:PDevice):PLoggingDevice;
Note | None documented |
---|
function LoggingDeviceFindByName(const Name:String):PLoggingDevice; inline;
Note | None documented |
---|
function LoggingDeviceFindByDescription(const Description:String):PLoggingDevice; inline;
Note | None documented |
---|
function LoggingDeviceEnumerate(Callback:TLoggingEnumerate; Data:Pointer):LongWord;
Note | None documented |
---|
function LoggingDeviceNotification(Logging:PLoggingDevice; Callback:TLoggingNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;
Note | None documented |
---|
Console logging functions
function ConsoleLoggingStart(Logging:PLoggingDevice):LongWord;
Note | Not intended to be called directly by applications, use LoggingDeviceStart instead. |
---|
function ConsoleLoggingStop(Logging:PLoggingDevice):LongWord;
Note | Not intended to be called directly by applications, use LoggingDeviceStop instead. |
---|
function ConsoleLoggingOutput(Logging:PLoggingDevice; const Data:String):LongWord;
Note | Not intended to be called directly by applications, use LoggingDeviceOutput instead. |
---|
function ConsoleLoggingSetTarget(Logging:PLoggingDevice; const Target:String):LongWord;
Note | Not intended to be called directly by applications, use LoggingDeviceSetTarget instead. |
---|
RTL text IO functions
function SysTextIOWriteChar(ACh:Char; AUserData:Pointer):Boolean;
Note | Not intended to be called directly by applications |
---|
function SysTextIOWriteBuffer(ABuffer:PChar; ACount:LongInt; AUserData:Pointer):LongInt;
Note | Not intended to be called directly by applications |
---|
RTL logging functions
procedure SysLoggingOutput(const AText:String);
Note | None documented |
---|
procedure SysLoggingOutputEx(AFacility,ASeverity:LongWord; const ATag,AContent:String);
Note | None documented |
---|
Logging helper functions
function LoggingDeviceGetCount:LongWord;
Note | None documented |
---|
function LoggingDeviceGetDefault:PLoggingDevice;
Note | None documented |
---|
function LoggingDeviceSetDefault(Logging:PLoggingDevice):LongWord;
Note | None documented |
---|
function LoggingDeviceCheck(Logging:PLoggingDevice):PLoggingDevice;
Note | None documented |
---|
function LoggingTypeToString(LoggingType:LongWord):String;
Note | None documented |
---|
function LoggingStateToString(LoggingState:LongWord):String;
Note | None documented |
---|
function LoggingDeviceRedirectOutput(Logging:PLoggingDevice):Boolean;
Logging | The logging device to redirect output to (or nil to stop redirection) |
---|---|
Return | True if completed successfully or False if an error occurred |
Note | Redirects the output of the text files Output, ErrOutput, StdOut and StdErr which also redirects the output of Write, WriteLn and the standard C library. |
function LoggingGetMessageslotFlags:LongWord;
Note | None documented |
---|
function LoggingConsoleDeviceAdd(Console:PConsoleDevice):LongWord;
Note | None documented |
---|
function LoggingConsoleDeviceRemove(Console:PConsoleDevice):LongWord;
Note | None documented |
---|
function LoggingConsoleDeviceEnum(Console:PConsoleDevice; Data:Pointer):LongWord;
Note | None documented |
---|
function LoggingConsoleDeviceNotify(Device:PDevice; Data:Pointer; Notification:LongWord):LongWord;
Note | None documented |
---|
Return to Unit Reference