diff --git a/README.md b/README.md index aab2b04c..42dd82ec 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ $ cmake .. && make -j * Headers only, just copy and use. Or use as a compiled library. * Feature rich formatting, using the excellent [fmt](https://github.com/fmtlib/fmt) library. * **New!** [Backtrace](#backtrace-support) support - store debug messages in a ring buffer and display later on demand. -* Fast asynchronous mode (optional) +* Asynchronous mode (optional) * [Custom](https://github.com/gabime/spdlog/wiki/3.-Custom-formatting) formatting. * Multi/Single threaded loggers. * Various log targets: @@ -300,15 +300,6 @@ void android_example() android_logger->critical("Use \"adb shell logcat\" to view this message."); } ``` ---- -#### Compile-time format string syntax checking -```C++ -#include "spdlog/spdlog.h" -int main() -{ - spdlog::info(FMT_STRING("{:d} is an invalid format tag")); -} -``` ## Benchmarks diff --git a/include/spdlog/details/os-inl.h b/include/spdlog/details/os-inl.h index 6c2adc66..06dd9ccb 100644 --- a/include/spdlog/details/os-inl.h +++ b/include/spdlog/details/os-inl.h @@ -390,13 +390,13 @@ SPDLOG_INLINE int pid() SPDLOG_NOEXCEPT } // Determine if the terminal supports colors -// Source: https://github.com/agauniyal/rang/ +// Based on: https://github.com/agauniyal/rang/ SPDLOG_INLINE bool is_color_terminal() SPDLOG_NOEXCEPT { #ifdef _WIN32 return true; #else - static constexpr std::array Terms = { + static constexpr std::array terms = { {"ansi", "color", "console", "cygwin", "gnome", "konsole", "kterm", "linux", "msys", "putty", "rxvt", "screen", "vt100", "xterm"}}; const char *env_p = std::getenv("TERM"); @@ -406,7 +406,7 @@ SPDLOG_INLINE bool is_color_terminal() SPDLOG_NOEXCEPT } static const bool result = - std::any_of(std::begin(Terms), std::end(Terms), [&](const char *term) { return std::strstr(env_p, term) != nullptr; }); + std::any_of(terms.begin(), terms.end(), [&](const char *term) { return std::strstr(env_p, term) != nullptr; }); return result; #endif } diff --git a/include/spdlog/details/pattern_formatter.h b/include/spdlog/details/pattern_formatter.h index fa134ada..a5c035d1 100644 --- a/include/spdlog/details/pattern_formatter.h +++ b/include/spdlog/details/pattern_formatter.h @@ -92,7 +92,7 @@ private: // Extract given pad spec (e.g. %8X) // Advance the given it pass the end of the padding spec found (if any) // Return padding. - details::padding_info handle_padspec_(std::string::const_iterator &it, std::string::const_iterator end); + static details::padding_info handle_padspec_(std::string::const_iterator &it, std::string::const_iterator end); void compile_pattern_(const std::string &pattern); }; diff --git a/include/spdlog/details/registry-inl.h b/include/spdlog/details/registry-inl.h index a2a7e614..84e1c414 100644 --- a/include/spdlog/details/registry-inl.h +++ b/include/spdlog/details/registry-inl.h @@ -184,7 +184,7 @@ SPDLOG_INLINE void registry::flush_on(level::level_enum log_level) SPDLOG_INLINE void registry::flush_every(std::chrono::seconds interval) { std::lock_guard lock(flusher_mutex_); - std::function clbk = std::bind(®istry::flush_all, this); + auto clbk = [this](){this->flush_all();}; periodic_flusher_ = details::make_unique(clbk, interval); } diff --git a/include/spdlog/details/tcp_client.h b/include/spdlog/details/tcp_client.h index 5b2f0af1..3052ac87 100644 --- a/include/spdlog/details/tcp_client.h +++ b/include/spdlog/details/tcp_client.h @@ -54,8 +54,8 @@ public: void connect(const std::string &host, int port) { close(); - spdlog::info("Connecting.."); - struct addrinfo hints{}; + struct addrinfo hints + {}; memset(&hints, 0, sizeof(struct addrinfo)); hints.ai_family = AF_INET; // IPv4 hints.ai_socktype = SOCK_STREAM; // TCP diff --git a/include/spdlog/details/thread_pool-inl.h b/include/spdlog/details/thread_pool-inl.h index 43220f43..2789abfa 100644 --- a/include/spdlog/details/thread_pool-inl.h +++ b/include/spdlog/details/thread_pool-inl.h @@ -113,7 +113,7 @@ bool SPDLOG_INLINE thread_pool::process_next_msg_() } default: { - assert(false && "Unexpected async_msg_type"); + assert(false); } } diff --git a/include/spdlog/logger-inl.h b/include/spdlog/logger-inl.h index 95a485f1..d9d58c29 100644 --- a/include/spdlog/logger-inl.h +++ b/include/spdlog/logger-inl.h @@ -89,6 +89,7 @@ SPDLOG_INLINE void logger::set_formatter(std::unique_ptr f) { // last element - we can be move it. (*it)->set_formatter(std::move(f)); + break; // to prevent clang-tidy warning } else { diff --git a/include/spdlog/sinks/win_eventlog_sink.h b/include/spdlog/sinks/win_eventlog_sink.h index d9839110..3e858940 100644 --- a/include/spdlog/sinks/win_eventlog_sink.h +++ b/include/spdlog/sinks/win_eventlog_sink.h @@ -73,7 +73,7 @@ struct win32_error : public spdlog_ex return fmt::format("{}: {}{}", user_message, error_code, system_message); } - win32_error(std::string const &func_name, DWORD error = GetLastError()) + explicit win32_error(std::string const &func_name, DWORD error = GetLastError()) : spdlog_ex(format(func_name, error)) {} }; diff --git a/tests/test_errors.cpp b/tests/test_errors.cpp index 613a9012..e22fafef 100644 --- a/tests/test_errors.cpp +++ b/tests/test_errors.cpp @@ -9,7 +9,7 @@ class failing_sink : public spdlog::sinks::base_sink { public: failing_sink() = default; - ~failing_sink() final = default; + ~failing_sink() = default; protected: void sink_it_(const spdlog::details::log_msg &) final