diff --git a/common/log.cpp b/common/log.cpp index f8ed4b0fc..82dbf3fb8 100644 --- a/common/log.cpp +++ b/common/log.cpp @@ -6,12 +6,6 @@ LogStateWrapper::~LogStateWrapper() for(auto t : _targets){ delete t; } } -LogStateWrapper & LogStateWrapper::instance() -{ - static LogStateWrapper inst; - return inst; -} - LogStateWrapper::LogTargetWrapper::LogTargetWrapper(FILE * handle) : _type(Type::Stream), _opened(true), @@ -126,16 +120,6 @@ void LogStateWrapper::log_flush_all_targets_internal() for(auto t : _targets){ t->flush(); } } -FILE * LogStateWrapper::log_handler_internal() -{ - return *_current_target; -} - -FILE * LogStateWrapper::log_tee_handler_internal() -{ - return _stderr_target; -} - void LogStateWrapper::log_disable_internal(bool threadsafe) { if(threadsafe) @@ -290,16 +274,6 @@ LogStateWrapper::LogTargetWrapper * LogStateWrapper::log_set_target_impl(LogTarg return instance().log_set_target_internal(target); } -FILE * LogStateWrapper::log_handler_impl() -{ - return instance().log_handler_internal(); -} - -FILE * LogStateWrapper::log_tee_handler_impl() -{ - return instance().log_tee_handler_internal(); -} - void LogStateWrapper::log_disable_impl() { instance().log_disable_internal(); diff --git a/common/log.h b/common/log.h index 17cf1c4b4..232708858 100644 --- a/common/log.h +++ b/common/log.h @@ -80,7 +80,11 @@ class LogStateWrapper void operator=(const LogStateWrapper &) = delete; private: - static LogStateWrapper & instance(); + static LogStateWrapper & instance() + { + static LogStateWrapper inst; + return inst; + } class LogTargetWrapper { @@ -130,8 +134,6 @@ class LogStateWrapper LogTargetWrapper * log_set_target_internal(LogTargetWrapper * target); LogTargetWrapper * log_add_select_target_internal(LogTargetWrapper * t, bool insert = false); void log_flush_all_targets_internal(); - FILE * log_handler_internal(); - FILE * log_tee_handler_internal(); void log_disable_internal(bool threadsafe = true); void log_disable_internal_unsafe(); void log_enable_internal(bool threadsafe = true); @@ -141,19 +143,37 @@ class LogStateWrapper std::string log_filename_generator_internal(const std::string & basename, const std::string & extension); std::string log_get_pid_internal(); + FILE * log_handler_internal() + { + return *_current_target; + } + + FILE * log_tee_handler_internal() + { + return _stderr_target; + } + public: static LogTargetWrapper * log_set_target_impl(const std::string && filename); static LogTargetWrapper * log_set_target_impl(const std::string & filename); static LogTargetWrapper * log_set_target_impl(FILE * handle); static LogTargetWrapper * log_set_target_impl(LogTargetWrapper * target); - static FILE * log_handler_impl(); - static FILE * log_tee_handler_impl(); static void log_disable_impl(); static void log_enable_impl(); static bool log_param_single_parse_impl(const std::string & param); static bool log_param_pair_parse_impl(bool parse, const std::string & param, const std::string & next = ""); static std::string log_filename_generator_impl(const std::string & basename, const std::string & extension); static std::string log_get_pid_impl(); + + static FILE * log_handler_impl() + { + return instance().log_handler_internal(); + } + + static FILE * log_tee_handler_impl() + { + return instance().log_tee_handler_internal(); + } }; // class LogStateWrapper // Specifies a log target.