diff --git a/include/spdlog/details/logger_impl.h b/include/spdlog/details/logger_impl.h index 9330ac05..0a7c5b6b 100644 --- a/include/spdlog/details/logger_impl.h +++ b/include/spdlog/details/logger_impl.h @@ -37,13 +37,12 @@ inline spdlog::logger::logger(std::string logger_name, spdlog::sink_ptr single_s inline spdlog::logger::~logger() = default; - inline void spdlog::logger::set_formatter(std::unique_ptr f) { - for (auto &sink : sinks_) - { - sink->set_formatter(f->clone()); - } + for (auto &sink : sinks_) + { + sink->set_formatter(f->clone()); + } } inline void spdlog::logger::set_pattern(std::string pattern, pattern_time_type time_type) diff --git a/include/spdlog/details/pattern_formatter.h b/include/spdlog/details/pattern_formatter.h index ad325743..78a477b8 100644 --- a/include/spdlog/details/pattern_formatter.h +++ b/include/spdlog/details/pattern_formatter.h @@ -75,7 +75,7 @@ static int to12h(const tm &t) } // Abbreviated weekday name -static const char* days[]{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; +static const char *days[]{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; class a_formatter : public flag_formatter { void format(const details::log_msg &, const std::tm &tm_time, fmt::memory_buffer &dest) override @@ -85,7 +85,7 @@ class a_formatter : public flag_formatter }; // Full weekday name -static const char* full_days[]{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; +static const char *full_days[]{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; class A_formatter : public flag_formatter { void format(const details::log_msg &, const std::tm &tm_time, fmt::memory_buffer &dest) override @@ -95,7 +95,7 @@ class A_formatter : public flag_formatter }; // Abbreviated month -static const char* months[]{"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec"}; +static const char *months[]{"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec"}; class b_formatter : public flag_formatter { void format(const details::log_msg &, const std::tm &tm_time, fmt::memory_buffer &dest) override @@ -105,7 +105,7 @@ class b_formatter : public flag_formatter }; // Full month name -static const char* full_months[]{ +static const char *full_months[]{ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; class B_formatter : public flag_formatter { @@ -541,24 +541,24 @@ private: class pattern_formatter SPDLOG_FINAL : public formatter { public: - explicit pattern_formatter( - std::string pattern, pattern_time_type time_type = pattern_time_type::local, std::string eol = spdlog::details::os::default_eol) - : pattern_(std::move(pattern)) - , eol_(std::move(eol)) - , pattern_time_type_(time_type) - , last_log_secs_(0) - { - std::memset(&cached_tm_, 0, sizeof(cached_tm_)); - compile_pattern_(pattern_); - } + explicit pattern_formatter( + std::string pattern, pattern_time_type time_type = pattern_time_type::local, std::string eol = spdlog::details::os::default_eol) + : pattern_(std::move(pattern)) + , eol_(std::move(eol)) + , pattern_time_type_(time_type) + , last_log_secs_(0) + { + std::memset(&cached_tm_, 0, sizeof(cached_tm_)); + compile_pattern_(pattern_); + } - pattern_formatter(const pattern_formatter &other) = delete; - pattern_formatter &operator=(const pattern_formatter &other) = delete; - - virtual std::unique_ptr clone() const override - { - return std::unique_ptr(new pattern_formatter(pattern_, pattern_time_type_, eol_)); - } + pattern_formatter(const pattern_formatter &other) = delete; + pattern_formatter &operator=(const pattern_formatter &other) = delete; + + virtual std::unique_ptr clone() const override + { + return std::unique_ptr(new pattern_formatter(pattern_, pattern_time_type_, eol_)); + } void format(const details::log_msg &msg, fmt::memory_buffer &dest) override { @@ -579,7 +579,7 @@ public: } private: - std::string pattern_; + std::string pattern_; std::string eol_; pattern_time_type pattern_time_type_; std::tm cached_tm_; @@ -742,10 +742,10 @@ private: } void compile_pattern_(const std::string &pattern) - { + { auto end = pattern.end(); std::unique_ptr user_chars; - formatters_.clear(); + formatters_.clear(); for (auto it = pattern.begin(); it != end; ++it) { if (*it == '%') diff --git a/include/spdlog/details/registry.h b/include/spdlog/details/registry.h index 800b004c..bff70690 100644 --- a/include/spdlog/details/registry.h +++ b/include/spdlog/details/registry.h @@ -81,17 +81,16 @@ public: return tp_; } - - // Set global formatter. Each sink in each logger will get a clone of this object - void set_formatter(std::unique_ptr formatter) - { - std::lock_guard lock(loggers_mutex_); - formatter_ = std::move(formatter); - for (auto &l : loggers_) - { - l.second->set_formatter(formatter_->clone()); - } - } + // Set global formatter. Each sink in each logger will get a clone of this object + void set_formatter(std::unique_ptr formatter) + { + std::lock_guard lock(loggers_mutex_); + formatter_ = std::move(formatter); + for (auto &l : loggers_) + { + l.second->set_formatter(formatter_->clone()); + } + } void set_level(level::level_enum log_level) { @@ -169,7 +168,10 @@ public: } private: - registry_t() : formatter_(new pattern_formatter("%+")){} + registry_t() + : formatter_(new pattern_formatter("%+")) + { + } ~registry_t() { @@ -196,7 +198,7 @@ private: Mutex loggers_mutex_; std::recursive_mutex tp_mutex_; std::unordered_map> loggers_; - //std::unique_ptr formatter_{ new pattern_formatter("%+") }; + // std::unique_ptr formatter_{ new pattern_formatter("%+") }; std::unique_ptr formatter_; level::level_enum level_ = level::info; level::level_enum flush_level_ = level::off; diff --git a/include/spdlog/formatter.h b/include/spdlog/formatter.h index afc6ee66..a7ef6b8b 100644 --- a/include/spdlog/formatter.h +++ b/include/spdlog/formatter.h @@ -15,6 +15,6 @@ class formatter public: virtual ~formatter() = default; virtual void format(const details::log_msg &msg, fmt::memory_buffer &dest) = 0; - virtual std::unique_ptr clone() const = 0; + virtual std::unique_ptr clone() const = 0; }; } // namespace spdlog diff --git a/include/spdlog/logger.h b/include/spdlog/logger.h index 01be8cfc..91eec4bc 100644 --- a/include/spdlog/logger.h +++ b/include/spdlog/logger.h @@ -114,19 +114,19 @@ public: void set_level(level::level_enum log_level); level::level_enum level() const; const std::string &name() const; - - // set formatting for the sinks in this logger. - // each sink will get a seperate instance of the formatter object. - void set_formatter(std::unique_ptr formatter); - void set_pattern(std::string pattern, pattern_time_type time_type = pattern_time_type::local); - + + // set formatting for the sinks in this logger. + // each sink will get a seperate instance of the formatter object. + void set_formatter(std::unique_ptr formatter); + void set_pattern(std::string pattern, pattern_time_type time_type = pattern_time_type::local); + void flush(); void flush_on(level::level_enum log_level); const std::vector &sinks() const; std::vector &sinks(); - + void set_error_handler(log_err_handler err_handler); log_err_handler error_handler(); diff --git a/include/spdlog/spdlog.h b/include/spdlog/spdlog.h index 77f799b9..cc039062 100644 --- a/include/spdlog/spdlog.h +++ b/include/spdlog/spdlog.h @@ -56,14 +56,14 @@ inline std::shared_ptr get(const std::string &name) // Set global formatter. Each sink in each logger will get a clone of this object inline void set_formatter(std::unique_ptr formatter) { - details::registry::instance().set_formatter(std::move(formatter)); + details::registry::instance().set_formatter(std::move(formatter)); } -// Set global format string. +// Set global format string. // example: spdlog::set_pattern("%Y-%m-%d %H:%M:%S.%e %l : %v"); inline void set_pattern(std::string pattern, pattern_time_type time_type = pattern_time_type::local) { - set_formatter(std::unique_ptr(new pattern_formatter(pattern, time_type))); + set_formatter(std::unique_ptr(new pattern_formatter(pattern, time_type))); } // Set global logging level diff --git a/tests/test_pattern_formatter.cpp b/tests/test_pattern_formatter.cpp index 581f0d38..6eb5d7a9 100644 --- a/tests/test_pattern_formatter.cpp +++ b/tests/test_pattern_formatter.cpp @@ -10,7 +10,7 @@ static std::string log_to_str(const std::string &msg, const Args &... args) spdlog::logger oss_logger("pattern_tester", oss_sink); oss_logger.set_level(spdlog::level::info); - oss_logger.set_formatter(std::unique_ptr(new spdlog::pattern_formatter(args...))); + oss_logger.set_formatter(std::unique_ptr(new spdlog::pattern_formatter(args...))); oss_logger.info(msg); return oss.str();