9.1. Module Structure

The logging module provides the following classes:

  • Log is the core class of the logging module. This singleton is not only in charge of the logging operations (see Logging Messages), but it also provides configuration APIs to set different logging configuration aspects (see Module Configuration), as well as logging filtering at various levels (see Filters). It contains zero or more LogConsumer objects. The singleton’s consuming thread feeds the log entries added to the logging queue using the macros defined in Logging Messages to the log consumers sequentially (see Logging Thread).


    Log API exposes member function Log::QueueLog(). However, this function is not intended to be used directly. To add messages to the log queue, use the methods described in Logging Messages.

  • LogConsumer is the base class for all the log consumers (see Consumers). It includes the member functions that derived classes should overload to consume log entries.


Logging module class diagram

The module can be further extended by creating new consumer classes deriving from LogConsumer and/or OStreamConsumer. To enable a custom consumer just follow the instructions on Register Consumers.