diff --git a/include/spdlog/async_logger-inl.h b/include/spdlog/async_logger-inl.h index 3b71e573..70440ce1 100644 --- a/include/spdlog/async_logger-inl.h +++ b/include/spdlog/async_logger-inl.h @@ -17,103 +17,66 @@ #include SPDLOG_INLINE spdlog::async_logger::async_logger( - std::string logger_name, sinks_init_list sinks_list, std::weak_ptr tp, async_overflow_policy overflow_policy) - : async_logger(std::move(logger_name), sinks_list.begin(), sinks_list.end(), std::move(tp), overflow_policy) -{} + std::string logger_name, sinks_init_list sinks_list, std::weak_ptr tp, + async_overflow_policy overflow_policy) + : async_logger(std::move(logger_name), sinks_list.begin(), sinks_list.end(), std::move(tp), overflow_policy) {} SPDLOG_INLINE spdlog::async_logger::async_logger( - std::string logger_name, sink_ptr single_sink, std::weak_ptr tp, async_overflow_policy overflow_policy) - : async_logger(std::move(logger_name), {std::move(single_sink)}, std::move(tp), overflow_policy) -{} + std::string logger_name, sink_ptr single_sink, std::weak_ptr tp, + async_overflow_policy overflow_policy) + : async_logger(std::move(logger_name), {std::move(single_sink)}, std::move(tp), overflow_policy) {} // send the log message to the thread pool -SPDLOG_INLINE void spdlog::async_logger::sink_it_(const details::log_msg &msg) -{ - if (auto pool_ptr = thread_pool_.lock()) - { +SPDLOG_INLINE void spdlog::async_logger::sink_it_(const details::log_msg &msg) { + if (auto pool_ptr = thread_pool_.lock()) { pool_ptr->post_log(shared_from_this(), msg, overflow_policy_); - } - else - { + } else { SPDLOG_THROW(spdlog_ex("async log: thread pool doesn't exist anymore")); } } // send flush request to the thread pool -SPDLOG_INLINE void spdlog::async_logger::flush_() -{ - if (auto pool_ptr = thread_pool_.lock()) - { +SPDLOG_INLINE void spdlog::async_logger::flush_() { + if (auto pool_ptr = thread_pool_.lock()) { pool_ptr->post_flush(shared_from_this(), overflow_policy_); - } - else - { + } else { SPDLOG_THROW(spdlog_ex("async flush: thread pool doesn't exist anymore")); } } +SPDLOG_INLINE void spdlog::async_logger::dump_backtrace_() +{ + if (auto pool_ptr = thread_pool_.lock()) { + pool_ptr->post_dump_backtrace(shared_from_this(), overflow_policy_); + } else { + SPDLOG_THROW(spdlog_ex("async dumptrace: thread pool doesn't exist anymore")); + } +} + // // backend functions - called from the thread pool to do the actual job // -SPDLOG_INLINE void spdlog::async_logger::backend_log_(const details::log_msg &incoming_log_msg) +SPDLOG_INLINE void spdlog::async_logger::backend_sink_it_(const details::log_msg &incoming_log_msg) { - SPDLOG_TRY - { - for (auto &s : sinks_) - { - if (s->should_log(incoming_log_msg.level)) - { - s->log(incoming_log_msg); - } - } - } - SPDLOG_LOGGER_CATCH() - - if (should_flush_(incoming_log_msg)) - { - backend_flush_(); - } + spdlog::logger::sink_it_(incoming_log_msg); } SPDLOG_INLINE void spdlog::async_logger::backend_flush_() { - SPDLOG_TRY - { - for (auto &sink : sinks_){sink->flush();} - } - SPDLOG_LOGGER_CATCH() + spdlog::logger::flush_(); } -SPDLOG_INLINE void spdlog::async_logger::dump_backtrace_() -{ - if (auto pool_ptr = thread_pool_.lock()) - { - pool_ptr->post_dump_backtrace(shared_from_this(), overflow_policy_); - } - else - { - SPDLOG_THROW(spdlog_ex("async dumptrace: thread pool doesn't exist anymore")); - } -} SPDLOG_INLINE void spdlog::async_logger::backend_dump_backtrace_() { - SPDLOG_TRY - { - if (backtrace_sink_) { - auto tracer = static_cast(backtrace_sink_.get()); - tracer->dump_backtrace(name()); - } - } - SPDLOG_LOGGER_CATCH() + spdlog::logger::dump_backtrace_(); } - -SPDLOG_INLINE std::shared_ptr spdlog::async_logger::clone(std::string new_name) -{ - auto cloned = std::make_shared(std::move(new_name), sinks_.begin(), sinks_.end(), thread_pool_, overflow_policy_); +SPDLOG_INLINE std::shared_ptr spdlog::async_logger::clone(std::string new_name) { + auto cloned = std::make_shared(std::move(new_name), sinks_.begin(), sinks_.end(), + thread_pool_, overflow_policy_); cloned->set_level(this->level()); cloned->flush_on(this->flush_level()); diff --git a/include/spdlog/async_logger.h b/include/spdlog/async_logger.h index bb0fc3ec..bee24015 100644 --- a/include/spdlog/async_logger.h +++ b/include/spdlog/async_logger.h @@ -56,7 +56,7 @@ protected: void sink_it_(const details::log_msg &msg) override; void flush_() override; void dump_backtrace_() override ; - void backend_log_(const details::log_msg &incoming_log_msg); + void backend_sink_it_(const details::log_msg &incoming_log_msg); void backend_flush_(); void backend_dump_backtrace_(); diff --git a/include/spdlog/details/thread_pool-inl.h b/include/spdlog/details/thread_pool-inl.h index 4019ea84..c9b4852c 100644 --- a/include/spdlog/details/thread_pool-inl.h +++ b/include/spdlog/details/thread_pool-inl.h @@ -105,7 +105,7 @@ bool SPDLOG_INLINE thread_pool::process_next_msg_() { case async_msg_type::log: { - incoming_async_msg.worker_ptr->backend_log_(incoming_async_msg); + incoming_async_msg.worker_ptr->backend_sink_it_(incoming_async_msg); return true; } case async_msg_type::flush: diff --git a/include/spdlog/logger-inl.h b/include/spdlog/logger-inl.h index d42effc9..2c27551b 100644 --- a/include/spdlog/logger-inl.h +++ b/include/spdlog/logger-inl.h @@ -241,7 +241,11 @@ SPDLOG_INLINE void logger::dump_backtrace_() if (backtrace_sink_) { auto tracer = static_cast(backtrace_sink_.get()); - tracer->dump_backtrace(name()); + SPDLOG_TRY + { + tracer->dump_backtrace(name()); + } + SPDLOG_LOGGER_CATCH() } }