// Type based log message receiver template<ACE_SYNCH_DECL> void Log_Message_Receiver_Impl<ACE_SYNCH_USE>::log_record (const ACE_TCHAR *hostname, ACE_Log_Record &record) { ACE_GUARD (ACE_SYNCH_MUTEX_T, guard, print_lock_); record.print (hostname, ACE_Log_Msg::instance ()->flags (), stderr); }
int Logging_Handler::handle_input (ACE_HANDLE) { ssize_t n; size_t len; // Perform two recv's to emulate record-oriented semantics. Note // that this code is not entirely portable since it relies on the // fact that sizeof (ssize_t) is the same on both the sender and // receiver side. To correctly handle this is painful, and we leave // it as an exercise for the reader ;-). switch (n = this->cli_stream_.recv ((void *) &len, sizeof len)) { case -1: ACE_ERROR_RETURN ((LM_ERROR, "(%P|%t) %p at host %s\n", "client logger", this->host_name_), -1); /* NOTREACHED */ case 0: ACE_ERROR_RETURN ((LM_ERROR, "(%P|%t) closing log daemon at host %s (fd = %d)\n", this->host_name_, this->get_handle ()), -1); /* NOTREACHED */ case sizeof (size_t): { ACE_Log_Record lp; len = ntohl (len); n = this->cli_stream_.recv_n ((void *) &lp, len); if (n != (ssize_t) len) ACE_ERROR_RETURN ((LM_ERROR, "(%P|%t) %p at host %s\n", "client logger", this->host_name_), -1); /* NOTREACHED */ lp.decode (); if (lp.length () == n) { ACE_DEBUG ((LM_DEBUG, "(%P|%t) ")); lp.print (this->host_name_, 1); } else ACE_ERROR ((LM_ERROR, "(%P|%t) error, lp.length = %d, n = %d\n", lp.length (), n)); break; } default: ACE_ERROR_RETURN ((LM_ERROR, "(%P|%t) %p at host %s\n", "client logger", this->host_name_), -1); /* NOTREACHED */ } return 0; }
// Type based log message receiver template<ACE_SYNCH_DECL> void Static_Log_Message_Receiver<ACE_SYNCH_USE>::log_record (const ACE_TCHAR *hostname, ACE_Log_Record &record) { #if defined (ACE_HAS_THREADS) static ACE_SYNCH_MUTEX_T lock_; ACE_GUARD (ACE_SYNCH_MUTEX_T, guard, lock_); #endif /* ACE_HAS_THREADS */ record.print (hostname, ACE_Log_Msg::instance ()->flags (), stderr); }
template<ACE_SYNCH_DECL> void Log_Message_Receiver_Impl<ACE_SYNCH_USE>::log_output (const ACE_TCHAR *hostname, ACE_Log_Record &record, ostream *outputfile) { if (outputfile != 0) { ACE_GUARD (ACE_SYNCH_MUTEX_T, guard, print_lock_); record.print (hostname, ACE_Log_Msg::instance ()->flags (), *outputfile); } }
template<ACE_SYNCH_DECL> void Static_Log_Message_Receiver<ACE_SYNCH_USE>::log_output (char const *hostname, ACE_Log_Record &record, ostream *outputfile) { if (outputfile != 0) { #if defined (ACE_HAS_THREADS) static ACE_SYNCH_MUTEX_T lock_; ACE_GUARD (ACE_SYNCH_MUTEX_T, guard, lock_); #endif /* ACE_HAS_THREADS */ record.print (hostname, ACE_Log_Msg::instance ()->flags (), *outputfile); } }
void log (ACE_Log_Record &log_record) { log_record.print ( "", 0, cerr ); log_record.print ( "", ACE_Log_Msg::VERBOSE , cerr ); }