6#ifndef SPDLOG_HEADER_ONLY
15#ifndef SPDLOG_DISABLE_DEFAULT_LOGGER
37#ifndef SPDLOG_DISABLE_DEFAULT_LOGGER
45 const char *default_logger_name =
"";
63 new_logger->set_formatter(
formatter_->clone());
73 new_logger->set_level(new_level);
91 auto found =
loggers_.find(logger_name);
92 return found ==
loggers_.end() ? nullptr : found->second;
120 if (new_default_logger !=
nullptr)
122 loggers_[new_default_logger->name()] = new_default_logger;
157 l.second->enable_backtrace(n_messages);
167 l.second->disable_backtrace();
176 l.second->set_level(log_level);
186 l.second->flush_on(log_level);
194 auto clbk = [
this]() { this->
flush_all(); };
203 l.second->set_error_handler(handler);
274 auto global_level_requested = global_level !=
nullptr;
284 else if (global_level_requested)
301 throw_spdlog_ex(
"logger with name '" + logger_name +
"' already exists");
307 auto logger_name = new_logger->name();
309 loggers_[logger_name] = std::move(new_logger);
std::mutex logger_map_mutex_
std::shared_ptr< logger > default_logger()
level::level_enum flush_level_
size_t backtrace_n_messages_
bool automatic_registration_
void flush_on(level::level_enum log_level)
void set_formatter(std::unique_ptr< formatter > formatter)
void set_levels(log_levels levels, level::level_enum *global_level)
void flush_every(std::chrono::seconds interval)
void set_error_handler(err_handler handler)
void set_automatic_registration(bool automatic_registration)
std::recursive_mutex tp_mutex_
logger * get_default_raw()
void set_tp(std::shared_ptr< thread_pool > tp)
std::recursive_mutex & tp_mutex()
void drop(const std::string &logger_name)
void register_logger_(std::shared_ptr< logger > new_logger)
std::shared_ptr< thread_pool > tp_
void set_default_logger(std::shared_ptr< logger > new_default_logger)
std::unique_ptr< periodic_worker > periodic_flusher_
std::shared_ptr< thread_pool > get_tp()
void throw_if_exists_(const std::string &logger_name)
std::unique_ptr< formatter > formatter_
static registry & instance()
spdlog::level::level_enum global_log_level_
void register_logger(std::shared_ptr< logger > new_logger)
std::unordered_map< std::string, std::shared_ptr< logger > > loggers_
void apply_all(const std::function< void(const std::shared_ptr< logger >)> &fun)
void enable_backtrace(size_t n_messages)
std::shared_ptr< logger > get(const std::string &logger_name)
std::shared_ptr< logger > default_logger_
void set_level(level::level_enum log_level)
std::mutex flusher_mutex_
void initialize_logger(std::shared_ptr< logger > new_logger)
void set_level(level::level_enum log_level)
SPDLOG_INLINE void throw_spdlog_ex(const std::string &msg, int last_errno)