6#ifndef SPDLOG_HEADER_ONLY
15#ifndef SPDLOG_DISABLE_DEFAULT_LOGGER
28#include <unordered_map>
39#ifndef SPDLOG_DISABLE_DEFAULT_LOGGER
42 auto color_sink = std::make_shared<sinks::wincolor_stdout_sink_mt>();
44 auto color_sink = std::make_shared<sinks::ansicolor_stdout_sink_mt>();
47 const char* default_logger_name =
"";
48 default_logger_ = std::make_shared<spdlog::logger>(default_logger_name, std::move(color_sink));
65 new_logger->set_formatter(
formatter_->clone());
75 new_logger->set_level(new_level);
93 auto found =
loggers_.find(logger_name);
94 return found ==
loggers_.end() ? nullptr : found->second;
122 if (new_default_logger !=
nullptr)
124 loggers_[new_default_logger->name()] = new_default_logger;
131 std::lock_guard<std::recursive_mutex> lock(
tp_mutex_);
137 std::lock_guard<std::recursive_mutex> lock(
tp_mutex_);
159 l.second->enable_backtrace(n_messages);
169 l.second->disable_backtrace();
178 l.second->set_level(log_level);
188 l.second->flush_on(log_level);
198 l.second->set_error_handler(handler);
249 std::lock_guard<std::recursive_mutex> lock(
tp_mutex_);
269 auto global_level_requested = global_level !=
nullptr;
279 else if (global_level_requested)
297 new_logger->set_level(new_level);
304 throw_spdlog_ex(
"logger with name '" + logger_name +
"' already exists");
310 auto logger_name = new_logger->name();
312 loggers_[logger_name] = std::move(new_logger);
std::mutex logger_map_mutex_
Definition registry.h:105
std::shared_ptr< logger > default_logger()
Definition registry-inl.h:97
level::level_enum flush_level_
Definition registry.h:111
size_t backtrace_n_messages_
Definition registry.h:117
bool automatic_registration_
Definition registry.h:116
void flush_on(level::level_enum log_level)
Definition registry-inl.h:183
void set_formatter(std::unique_ptr< formatter > formatter)
Definition registry-inl.h:142
void drop_all()
Definition registry-inl.h:231
void set_levels(log_levels levels, level::level_enum *global_level)
Definition registry-inl.h:265
void set_error_handler(err_handler handler)
Definition registry-inl.h:193
void set_automatic_registration(bool automatic_registration)
Definition registry-inl.h:259
std::recursive_mutex tp_mutex_
Definition registry.h:106
logger * get_default_raw()
Definition registry-inl.h:107
void set_tp(std::shared_ptr< thread_pool > tp)
Definition registry-inl.h:129
void apply_logger_env_levels(std::shared_ptr< logger > new_logger)
Definition registry-inl.h:292
std::recursive_mutex & tp_mutex()
Definition registry-inl.h:254
void drop(const std::string &logger_name)
Definition registry-inl.h:221
void register_logger_(std::shared_ptr< logger > new_logger)
Definition registry-inl.h:308
void disable_backtrace()
Definition registry-inl.h:163
std::shared_ptr< thread_pool > tp_
Definition registry.h:113
void set_default_logger(std::shared_ptr< logger > new_default_logger)
Definition registry-inl.h:114
log_levels log_levels_
Definition registry.h:108
std::unique_ptr< periodic_worker > periodic_flusher_
Definition registry.h:114
std::shared_ptr< thread_pool > get_tp()
Definition registry-inl.h:135
void throw_if_exists_(const std::string &logger_name)
Definition registry-inl.h:300
std::unordered_map< std::string, level::level_enum > log_levels
Definition registry.h:32
std::unique_ptr< formatter > formatter_
Definition registry.h:109
static registry & instance()
Definition registry-inl.h:286
spdlog::level::level_enum global_log_level_
Definition registry.h:110
void shutdown()
Definition registry-inl.h:239
void register_logger(std::shared_ptr< logger > new_logger)
Definition registry-inl.h:56
void flush_all()
Definition registry-inl.h:212
std::unordered_map< std::string, std::shared_ptr< logger > > loggers_
Definition registry.h:107
void apply_all(const std::function< void(const std::shared_ptr< logger >)> &fun)
Definition registry-inl.h:203
void enable_backtrace(size_t n_messages)
Definition registry-inl.h:152
std::shared_ptr< logger > get(const std::string &logger_name)
Definition registry-inl.h:90
std::shared_ptr< logger > default_logger_
Definition registry.h:115
err_handler err_handler_
Definition registry.h:112
void set_level(level::level_enum log_level)
Definition registry-inl.h:173
registry()
Definition registry-inl.h:35
std::mutex flusher_mutex_
Definition registry.h:105
void initialize_logger(std::shared_ptr< logger > new_logger)
Definition registry-inl.h:62
void set_level(level::level_enum log_level)
Definition logger-inl.h:65
#define SPDLOG_INLINE
Definition common.h:47
level_enum
Definition common.h:233
std::function< void(const std::string &err_msg)> err_handler
Definition common.h:138
SPDLOG_INLINE void throw_spdlog_ex(const std::string &msg, int last_errno)
Definition common-inl.h:75
annotation details
Definition tag_strings.h:125