diff --git a/bench/async_bench.cpp b/bench/async_bench.cpp index 3beff462..fc49cdd8 100644 --- a/bench/async_bench.cpp +++ b/bench/async_bench.cpp @@ -116,7 +116,7 @@ int main(int argc, char *argv[]) auto file_sink = std::make_shared(filename, true); auto logger = std::make_shared("async_logger", std::move(file_sink), std::move(tp), async_overflow_policy::block); bench_mt(howmany, std::move(logger), threads); - //verify_file(filename, howmany); + // verify_file(filename, howmany); } spdlog::info(""); diff --git a/bench/latency.cpp b/bench/latency.cpp index e57c739d..730226ca 100644 --- a/bench/latency.cpp +++ b/bench/latency.cpp @@ -160,7 +160,7 @@ int main(int argc, char *argv[]) benchmark::RegisterBenchmark("async_logger", bench_logger, async_logger)->Threads(n_threads)->UseRealTime(); auto async_logger_tracing = std::make_shared( - "async_logger_tracing", std::make_shared(), std::move(tp), spdlog::async_overflow_policy::overrun_oldest); + "async_logger_tracing", std::make_shared(), std::move(tp), spdlog::async_overflow_policy::overrun_oldest); async_logger_tracing->enable_backtrace(32); benchmark::RegisterBenchmark("async_logger/tracing", bench_logger, async_logger_tracing)->Threads(n_threads)->UseRealTime(); diff --git a/example/example.cpp b/example/example.cpp index 5aead62d..2a18677a 100644 --- a/example/example.cpp +++ b/example/example.cpp @@ -45,7 +45,7 @@ int main(int, char *[]) // Loggers can store in a ring buffer all messages (including debug/trace) for later inspection. // When needed, call dump_backtrace() to see what happened: spdlog::enable_backtrace(10); // create ring buffer with capacity of 10 messages - for(int i = 0; i < 100; i++) + for (int i = 0; i < 100; i++) { spdlog::debug("Backtrace message {}", i); // not logged.. } diff --git a/include/spdlog/async_logger-inl.h b/include/spdlog/async_logger-inl.h index 47002d3e..93dbab7c 100644 --- a/include/spdlog/async_logger-inl.h +++ b/include/spdlog/async_logger-inl.h @@ -83,4 +83,3 @@ SPDLOG_INLINE void spdlog::async_logger::backend_flush_() SPDLOG_LOGGER_CATCH() } } - diff --git a/include/spdlog/async_logger.h b/include/spdlog/async_logger.h index f56e2dd1..f98ba715 100644 --- a/include/spdlog/async_logger.h +++ b/include/spdlog/async_logger.h @@ -49,7 +49,6 @@ public: async_logger(std::string logger_name, sink_ptr single_sink, std::weak_ptr tp, async_overflow_policy overflow_policy = async_overflow_policy::block); - protected: void sink_it_(const details::log_msg &msg) override; void flush_() override; diff --git a/include/spdlog/details/backtracer.h b/include/spdlog/details/backtracer.h index 66dd0196..9b265a7d 100644 --- a/include/spdlog/details/backtracer.h +++ b/include/spdlog/details/backtracer.h @@ -22,11 +22,13 @@ class backtracer public: explicit backtracer(size_t n_messages) - : n_messages_{n_messages}, messages_{n_messages} + : n_messages_{n_messages} + , messages_{n_messages} {} - backtracer(const backtracer &other): - n_messages_{other.n_messages_}, messages_{other.messages_} + backtracer(const backtracer &other) + : n_messages_{other.n_messages_} + , messages_{other.messages_} {} size_t n_messages() const diff --git a/include/spdlog/details/log_msg_buffer.h b/include/spdlog/details/log_msg_buffer.h index d1912492..3015d26a 100644 --- a/include/spdlog/details/log_msg_buffer.h +++ b/include/spdlog/details/log_msg_buffer.h @@ -33,7 +33,7 @@ public: } log_msg_buffer(const log_msg_buffer &other) - : log_msg{other} + : log_msg{other} { buffer.append(logger_name.begin(), logger_name.end()); buffer.append(payload.begin(), payload.end()); diff --git a/include/spdlog/logger-inl.h b/include/spdlog/logger-inl.h index 102e943c..f6f05343 100644 --- a/include/spdlog/logger-inl.h +++ b/include/spdlog/logger-inl.h @@ -23,7 +23,7 @@ SPDLOG_INLINE logger::logger(const logger &other) , flush_level_(other.flush_level_.load(std::memory_order_relaxed)) , custom_err_handler_(other.custom_err_handler_) { - if(other.tracer_) + if (other.tracer_) { tracer_ = std::make_shared(*other.tracer_); } diff --git a/include/spdlog/logger.h b/include/spdlog/logger.h index 3b99615e..8151603e 100644 --- a/include/spdlog/logger.h +++ b/include/spdlog/logger.h @@ -230,7 +230,7 @@ public: #else template - void log(source_loc loc, level::level_enum lvl, wstring_view_t fmt, const Args &... args) + void log(source_loc loc, level::level_enum lvl, wstring_view_t fmt, const Args &... args) { auto level_enabled = should_log(lvl); if (!level_enabled && !tracer_) @@ -239,14 +239,14 @@ public: } SPDLOG_TRY { - // format to wmemory_buffer and convert to utf8 + // format to wmemory_buffer and convert to utf8 fmt::wmemory_buffer wbuf; fmt::format_to(wbuf, fmt, args...); fmt::memory_buffer buf; details::os::wstr_to_utf8buf(wstring_view_t(wbuf.data(), wbuf.size()), buf); details::log_msg log_msg(loc, name_, lvl, string_view_t(buf.data(), buf.size())); - + if (level_enabled) { sink_it_(log_msg); @@ -258,7 +258,7 @@ public: } SPDLOG_LOGGER_CATCH() } - + template void log(level::level_enum lvl, wstring_view_t fmt, const Args &... args) { @@ -356,7 +356,6 @@ public: // error handler void set_error_handler(err_handler); - protected: std::string name_; std::vector sinks_; diff --git a/tests/test_backtrace.cpp b/tests/test_backtrace.cpp index 4c6f123f..98257684 100644 --- a/tests/test_backtrace.cpp +++ b/tests/test_backtrace.cpp @@ -2,69 +2,64 @@ #include "test_sink.h" #include "spdlog/async.h" - - - TEST_CASE("bactrace1", "[bactrace]") { - using spdlog::sinks::test_sink_st; - auto test_sink = std::make_shared(); - int backtrace_size = 5; + using spdlog::sinks::test_sink_st; + auto test_sink = std::make_shared(); + int backtrace_size = 5; - spdlog::logger logger("test-backtrace", test_sink); - logger.set_pattern("%v"); - logger.enable_backtrace(backtrace_size); + spdlog::logger logger("test-backtrace", test_sink); + logger.set_pattern("%v"); + logger.enable_backtrace(backtrace_size); - logger.info("info message"); - for(int i = 0; i < 100; i++) - logger.debug("debug message {}", i); - - REQUIRE(test_sink->lines().size() == 1); - REQUIRE(test_sink->lines()[0] == "info message"); + logger.info("info message"); + for (int i = 0; i < 100; i++) + logger.debug("debug message {}", i); - logger.dump_backtrace(); - REQUIRE(test_sink->lines().size() == backtrace_size +3); - REQUIRE(test_sink->lines()[1] == "****************** Backtrace Start ******************"); - REQUIRE(test_sink->lines()[2] == "debug message 95"); - REQUIRE(test_sink->lines()[3] == "debug message 96"); - REQUIRE(test_sink->lines()[4] == "debug message 97"); - REQUIRE(test_sink->lines()[5] == "debug message 98"); - REQUIRE(test_sink->lines()[6] == "debug message 99"); - REQUIRE(test_sink->lines()[7] == "****************** Backtrace End ********************"); + REQUIRE(test_sink->lines().size() == 1); + REQUIRE(test_sink->lines()[0] == "info message"); + + logger.dump_backtrace(); + REQUIRE(test_sink->lines().size() == backtrace_size + 3); + REQUIRE(test_sink->lines()[1] == "****************** Backtrace Start ******************"); + REQUIRE(test_sink->lines()[2] == "debug message 95"); + REQUIRE(test_sink->lines()[3] == "debug message 96"); + REQUIRE(test_sink->lines()[4] == "debug message 97"); + REQUIRE(test_sink->lines()[5] == "debug message 98"); + REQUIRE(test_sink->lines()[6] == "debug message 99"); + REQUIRE(test_sink->lines()[7] == "****************** Backtrace End ********************"); } - TEST_CASE("bactrace-async", "[bactrace]") { - using spdlog::sinks::test_sink_mt; - auto test_sink = std::make_shared(); - using spdlog::details::os::sleep_for_millis; + using spdlog::sinks::test_sink_mt; + auto test_sink = std::make_shared(); + using spdlog::details::os::sleep_for_millis; - int backtrace_size = 5; + int backtrace_size = 5; - spdlog::init_thread_pool(120, 1); - auto logger = std::make_shared("test-bactrace-async", test_sink, spdlog::thread_pool()); - logger->set_pattern("%v"); - logger->enable_backtrace(backtrace_size); + spdlog::init_thread_pool(120, 1); + auto logger = std::make_shared("test-bactrace-async", test_sink, spdlog::thread_pool()); + logger->set_pattern("%v"); + logger->enable_backtrace(backtrace_size); - logger->info("info message"); - for(int i = 0; i < 100; i++) - logger->debug("debug message {}", i); - - sleep_for_millis(10); - REQUIRE(test_sink->lines().size() == 1); - REQUIRE(test_sink->lines()[0] == "info message"); + logger->info("info message"); + for (int i = 0; i < 100; i++) + logger->debug("debug message {}", i); - logger->dump_backtrace(); - sleep_for_millis(100); // give time for the async dump to complete - REQUIRE(test_sink->lines().size() == backtrace_size +3); - REQUIRE(test_sink->lines()[1] == "****************** Backtrace Start ******************"); - REQUIRE(test_sink->lines()[2] == "debug message 95"); - REQUIRE(test_sink->lines()[3] == "debug message 96"); - REQUIRE(test_sink->lines()[4] == "debug message 97"); - REQUIRE(test_sink->lines()[5] == "debug message 98"); - REQUIRE(test_sink->lines()[6] == "debug message 99"); - REQUIRE(test_sink->lines()[7] == "****************** Backtrace End ********************"); + sleep_for_millis(10); + REQUIRE(test_sink->lines().size() == 1); + REQUIRE(test_sink->lines()[0] == "info message"); + + logger->dump_backtrace(); + sleep_for_millis(100); // give time for the async dump to complete + REQUIRE(test_sink->lines().size() == backtrace_size + 3); + REQUIRE(test_sink->lines()[1] == "****************** Backtrace Start ******************"); + REQUIRE(test_sink->lines()[2] == "debug message 95"); + REQUIRE(test_sink->lines()[3] == "debug message 96"); + REQUIRE(test_sink->lines()[4] == "debug message 97"); + REQUIRE(test_sink->lines()[5] == "debug message 98"); + REQUIRE(test_sink->lines()[6] == "debug message 99"); + REQUIRE(test_sink->lines()[7] == "****************** Backtrace End ********************"); } - diff --git a/tests/test_sink.h b/tests/test_sink.h index 0d4a7d67..08945a85 100644 --- a/tests/test_sink.h +++ b/tests/test_sink.h @@ -18,7 +18,8 @@ namespace sinks { template class test_sink : public base_sink { - const size_t lines_to_save = 100; + const size_t lines_to_save = 100; + public: size_t msg_counter() { @@ -34,42 +35,41 @@ public: void set_delay(std::chrono::milliseconds delay) { - std::lock_guard lock(base_sink::mutex_); + std::lock_guard lock(base_sink::mutex_); delay_ = delay; } - // return last output without the eol - std::vector lines() - { - std::lock_guard lock(base_sink::mutex_); - return lines_; - } - + // return last output without the eol + std::vector lines() + { + std::lock_guard lock(base_sink::mutex_); + return lines_; + } protected: void sink_it_(const details::log_msg &msg) override - { - fmt::memory_buffer formatted; - base_sink::formatter_->format(msg, formatted); - // save the line without the eol - auto eol_len = strlen(details::os::default_eol); - if(lines_.size() < lines_to_save) - { - lines_.emplace_back(formatted.begin(), formatted.end()-eol_len); - } - msg_counter_++; - std::this_thread::sleep_for(delay_); + { + fmt::memory_buffer formatted; + base_sink::formatter_->format(msg, formatted); + // save the line without the eol + auto eol_len = strlen(details::os::default_eol); + if (lines_.size() < lines_to_save) + { + lines_.emplace_back(formatted.begin(), formatted.end() - eol_len); + } + msg_counter_++; + std::this_thread::sleep_for(delay_); } void flush_() override { flush_counter_++; } - + size_t msg_counter_{0}; size_t flush_counter_{0}; std::chrono::milliseconds delay_{std::chrono::milliseconds::zero()}; - std::vector lines_; + std::vector lines_; }; using test_sink_mt = test_sink;