⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 logmanager.h

📁 ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework)
💻 H
字号:
// LogManager.h,v 1.6 2005/09/13 11:52:55 jwillemsen Exp#include "ace/streams.h"#include "ace/Synch.h"#include "ace/Singleton.h"#include "ace/Log_Msg.h"#include "ace/Log_Msg_Callback.h"#if (defined (_MSC_VER) && (_MSC_VER < 1300))#include <fstream>#endif#ifndef LOG_MANAGER_H#define LOG_MANAGER_H// Listing 1 code/ch03class LogManager{public:  LogManager ();  ~LogManager ();  void redirectToDaemon    (const ACE_TCHAR *prog_name = ACE_TEXT (""));  void redirectToSyslog    (const ACE_TCHAR *prog_name = ACE_TEXT (""));  void redirectToOStream (ACE_OSTREAM_TYPE *output);  void redirectToFile (const char *filename);  void redirectToStderr (void);  ACE_Log_Msg_Callback * redirectToCallback    (ACE_Log_Msg_Callback *callback);  // Exclude 1private:  ofstream *log_stream_;  ACE_OSTREAM_TYPE *output_stream_;  // Exclude 1};// Listing 1// Listing 2 code/ch03LogManager::LogManager ()  : log_stream_ (0), output_stream_ (0){ }LogManager::~LogManager (){  if (log_stream_)    log_stream_->close ();  delete log_stream_;}void LogManager::redirectToSyslog (const ACE_TCHAR *prog_name){  ACE_LOG_MSG->open (prog_name, ACE_Log_Msg::SYSLOG, prog_name);}void LogManager::redirectToDaemon (const ACE_TCHAR *prog_name){  ACE_LOG_MSG->open (prog_name, ACE_Log_Msg::LOGGER,                     ACE_DEFAULT_LOGGER_KEY);}void LogManager::redirectToOStream (ACE_OSTREAM_TYPE *output){  output_stream_ = output;  ACE_LOG_MSG->msg_ostream (this->output_stream_);  ACE_LOG_MSG->clr_flags    (ACE_Log_Msg::STDERR | ACE_Log_Msg::LOGGER);  ACE_LOG_MSG->set_flags (ACE_Log_Msg::OSTREAM);}void LogManager::redirectToFile (const char *filename){  log_stream_ = new ofstream ();  log_stream_->open (filename, ios::out | ios::app);  this->redirectToOStream ((ACE_OSTREAM_TYPE *)log_stream_);}void LogManager::redirectToStderr (void){  ACE_LOG_MSG->clr_flags    (ACE_Log_Msg::OSTREAM | ACE_Log_Msg::LOGGER);  ACE_LOG_MSG->set_flags (ACE_Log_Msg::STDERR);}ACE_Log_Msg_Callback *LogManager::redirectToCallback (ACE_Log_Msg_Callback * callback){  ACE_Log_Msg_Callback *previous =    ACE_LOG_MSG->msg_callback (callback);  if (callback == 0)    ACE_LOG_MSG->clr_flags (ACE_Log_Msg::MSG_CALLBACK);  else    ACE_LOG_MSG->set_flags (ACE_Log_Msg::MSG_CALLBACK);  return previous;}// Listing 2// Listing 3 code/ch03typedef ACE_Singleton<LogManager, ACE_Null_Mutex>        LogManagerSingleton;#define LOG_MANAGER LogManagerSingleton::instance()// Listing 3#endif /* LOG_MANAGER_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -