Public Member Functions
|No-op virtual destructor. |
|virtual void||log (ACE_Log_Record &log_record)=0|
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.
No-op virtual destructor.
|virtual void ACE_Log_Msg_Callback::log||(||ACE_Log_Record &||log_record||)||
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.