Aros/Developer/Docs/Logging

From Wikibooks, open books for an open world
Jump to: navigation, search

This is currently a draft page ...

Logging Subsystem Components[edit]

log.resource  
Generic API to logging.
debug.logger  
hardcoded processor for debug log output. used for
other log types until exec can handle memory requests.
generic.logger  
hardcoded processor used after log.resource:init() to process all but debug logging.
NB -: should not be used inside allocmem/freemem (since it may use them) or IRQs


seriallog.resource  
rom resident listener which dumps DEBUG type log output to the serial device
(configurable via grub command line)


Support Commands[edit]

C
BufferLog LOGTYPE OUTPUTFILE
Registers a listener for the specified LOGTYPE which Buffers log output to an OUTPUTFILE.
SYS
Tools/LogViewer LOGFILE
Tool used to display LOGFILE's buffered with C:BufferLog.

Logging Subsystem Operations[edit]

Logging API's[edit]

LOG_TYPEID
LOG_DATA
LOG_TYPE_DEBUG
DEBUG_ERROR
DEBUG_WARN
DEBUG_INFO
LOG_TYPE_SYSTEM
SYSTEM_ERROR
SYSTEM_WARN
SYSTEM_INFO
LOG_TYPE_APPLICATION
APPLICATION_ERROR
APPLICATION_WARN
APPLICATION_INFO


IPTR LOGR_RegisterProcessor(LOG_TYPEID, struct LogProcessor *)

IPTR LOGR_RegisterListener(LOG_TYPEID, struct LogListener *)

BOOL LOGR_LogEvent(LOG_TYPEID, LOG_DATA, char *LOG_SRC, char *LOG_TEMPLATE, args ...)

IPTR LOGR_ObtainLogEvents(LOG_TYPEID, LOG_EVENTFLAGS)

IPTR LOGR_LogEventNext(IPTR)

IPTR LOGR_LogEventDelete(IPTR)

IPTR LOGR_ReleaseLogEvents(IPTR)


LOGR_RegisterProcessor[edit]

LOGR_RegisterListener[edit]

LOGR_LogEvent[edit]

Used to output data to a specified log.

LOGR_ObtainLogEvents[edit]

Returns a per caller handle. if (LOG_EVENTFLAGS == LOG_EVENTLIST_UNIQUE) then it will only succeed if no other access is occurring.

internal: sets handle->active_event to the first log entry and increases its access count.

LOGR_LogEventNext[edit]

(semaphore protected?)

internal: sets handle->active_event to the next log entry - decreasing the current one's access count and increasing the next's access count

LOGR_LogEventDelete[edit]

(semaphore protected?)

Deletes a log entry.

internal: deletes handle->active_event - or marks it for deletion if its access count > 0

LOGR_ReleaseLogEvents[edit]

Must be called with a handle obtained with LOGR_ObtainLogEvents. decreases the handle->active_event's access count, and frees the per caller handle.