Left Up RACE - Modifications and Extensions to ACE from Ravensburg

RACE-Error-Logging

Benefits: Drawbacks:

Abstraction of Backend-Mechanism

A class in an library don't know the context in which it will be called. Thus, in the start phase, the backends have to konkretly initialized.
For instance, the syslog-mechanism needs to know a facility, while stderr don't need this. It cannot be in a large system, that the logging-mechanism puts the messages only in one predifined facility.

stream-Abstraction

We cannot pass objects of non-POD type `std::string' through `...'. Thus, for complex objects the << - Operator abstracts where the dumping will be done

Minimal Critical Sections

Important idea of ACE_Log_Msg: The MessageBuffer is a Thread Specific Singleton in a Thread Specific Storage. Thus, there is during message assembly no need for koordination.

The whole ostream is a Thread specific Singleton (TSS_Singleton)

Special

Logging in constructors and destructors in global objects
When calling the BackendMgr in a global constructor, it don't can be controlled. The BackendMgr is inizilized with the Stderr-Backend. Later, the backend may be cleared and new backends can be added.

Computerscience and Networkassocation Ravensburg e.V Rudolf Weber and friends