ACE
6.3.3
|
An interface class used to get logging callbacks. More...
#include <Log_Msg_Callback.h>
Public Member Functions | |
ACE_Log_Msg_Callback (void) | |
Default constructor. More... | |
virtual | ~ACE_Log_Msg_Callback (void) |
No-op virtual destructor. More... | |
virtual void | log (ACE_Log_Record &log_record)=0 |
An interface class used to get logging callbacks.
Users who are interested in getting the logging messages directly, can subclass this interface and override the log() method. They must then register their subclass with the Log_Msg class and make sure that they turn on the ACE_Log_Msg::MSG_CALLBACK flag.
Your log() routine is called with an instance of ACE_Log_Record. From this class, you can get the log message, the verbose log message, message type, message priority, and so on.
Remember that there is one Log_Msg object per thread. Therefore, you may need to register your callback object with many ACE_Log_Msg objects (and have the correct synchronization in the log() method) or have a separate callback object per Log_Msg object. Moreover, ACE_Log_Msg_Callbacks are not inherited when a new thread is spawned because it might have been allocated off of the stack of the original thread, in which case all hell would break loose... Therefore, you'll need to reset these in each new thread.
ACE_Log_Msg_Callback::ACE_Log_Msg_Callback | ( | void | ) |
Default constructor.
|
virtual |
No-op virtual destructor.
|
pure virtual |
Callback routine. This is called when we want to log a message. Since this routine is pure virtual, it must be overwritten by the subclass.