mirror of
https://github.com/gabime/spdlog.git
synced 2024-12-25 18:11:33 +08:00
Revert "vector / mutex"
This reverts commit a74e280bb4
.
Conflicts:
include/spdlog/tweakme.h
This commit is contained in:
parent
fa038547ad
commit
9cad840a72
@ -54,19 +54,9 @@ public:
|
|||||||
|
|
||||||
std::shared_ptr<logger> get(const std::string& logger_name)
|
std::shared_ptr<logger> get(const std::string& logger_name)
|
||||||
{
|
{
|
||||||
#ifndef SPDLOG_NO_REGISTRY_MUTEX
|
|
||||||
std::lock_guard<std::mutex> lock(_mutex);
|
std::lock_guard<std::mutex> lock(_mutex);
|
||||||
#endif
|
|
||||||
#ifdef SPDLOG_VECTOR_BASED_REGISTRY
|
|
||||||
for (auto& logger : _loggers) {
|
|
||||||
if (logger_name == logger->name())
|
|
||||||
return logger;
|
|
||||||
}
|
|
||||||
return nullptr;
|
|
||||||
#else
|
|
||||||
auto found = _loggers.find(logger_name);
|
auto found = _loggers.find(logger_name);
|
||||||
return found == _loggers.end() ? nullptr : found->second;
|
return found == _loggers.end() ? nullptr : found->second;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class It>
|
template<class It>
|
||||||
@ -94,17 +84,7 @@ public:
|
|||||||
void drop(const std::string& logger_name)
|
void drop(const std::string& logger_name)
|
||||||
{
|
{
|
||||||
std::lock_guard<std::mutex> lock(_mutex);
|
std::lock_guard<std::mutex> lock(_mutex);
|
||||||
#ifdef SPDLOG_VECTOR_BASED_REGISTRY
|
|
||||||
for (auto it = _loggers.begin(); it != _loggers.end();) {
|
|
||||||
if (logger_name == (*it)->name()) {
|
|
||||||
it = _loggers.erase(it);
|
|
||||||
} else {
|
|
||||||
++it;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
_loggers.erase(logger_name);
|
_loggers.erase(logger_name);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void drop_all()
|
void drop_all()
|
||||||
@ -128,11 +108,7 @@ public:
|
|||||||
std::lock_guard<std::mutex> lock(_mutex);
|
std::lock_guard<std::mutex> lock(_mutex);
|
||||||
_formatter = f;
|
_formatter = f;
|
||||||
for (auto& l : _loggers)
|
for (auto& l : _loggers)
|
||||||
#ifdef SPDLOG_VECTOR_BASED_REGISTRY
|
|
||||||
l->set_formatter(_formatter);
|
|
||||||
#else
|
|
||||||
l.second->set_formatter(_formatter);
|
l.second->set_formatter(_formatter);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_pattern(const std::string& pattern)
|
void set_pattern(const std::string& pattern)
|
||||||
@ -140,22 +116,14 @@ public:
|
|||||||
std::lock_guard<std::mutex> lock(_mutex);
|
std::lock_guard<std::mutex> lock(_mutex);
|
||||||
_formatter = std::make_shared<pattern_formatter>(pattern);
|
_formatter = std::make_shared<pattern_formatter>(pattern);
|
||||||
for (auto& l : _loggers)
|
for (auto& l : _loggers)
|
||||||
#ifdef SPDLOG_VECTOR_BASED_REGISTRY
|
|
||||||
l->set_formatter(_formatter);
|
|
||||||
#else
|
|
||||||
l.second->set_formatter(_formatter);
|
l.second->set_formatter(_formatter);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_level(level::level_enum log_level)
|
void set_level(level::level_enum log_level)
|
||||||
{
|
{
|
||||||
std::lock_guard<std::mutex> lock(_mutex);
|
std::lock_guard<std::mutex> lock(_mutex);
|
||||||
for (auto& l : _loggers)
|
for (auto& l : _loggers)
|
||||||
#ifdef SPDLOG_VECTOR_BASED_REGISTRY
|
|
||||||
l->set_level(log_level);
|
|
||||||
#else
|
|
||||||
l.second->set_level(log_level);
|
l.second->set_level(log_level);
|
||||||
#endif
|
|
||||||
_level = log_level;
|
_level = log_level;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -184,25 +152,15 @@ private:
|
|||||||
void register_logger_impl(std::shared_ptr<logger> logger)
|
void register_logger_impl(std::shared_ptr<logger> logger)
|
||||||
{
|
{
|
||||||
auto logger_name = logger->name();
|
auto logger_name = logger->name();
|
||||||
if (get(logger_name) != nullptr)
|
if (_loggers.find(logger_name) != std::end(_loggers))
|
||||||
throw spdlog_ex("logger with name " + logger_name + " already exists");
|
throw spdlog_ex("logger with name " + logger_name + " already exists");
|
||||||
#ifdef SPDLOG_VECTOR_BASED_REGISTRY
|
|
||||||
_loggers.push_back(logger);
|
|
||||||
#else
|
|
||||||
_loggers[logger->name()] = logger;
|
_loggers[logger->name()] = logger;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
registry() = default;
|
registry() = default;
|
||||||
registry(const registry&) = delete;
|
registry(const registry&) = delete;
|
||||||
registry& operator=(const registry&) = delete;
|
registry& operator=(const registry&) = delete;
|
||||||
std::mutex _mutex;
|
std::mutex _mutex;
|
||||||
|
|
||||||
#ifdef SPDLOG_VECTOR_BASED_REGISTRY
|
|
||||||
std::vector <std::shared_ptr<logger>> _loggers;
|
|
||||||
#else
|
|
||||||
std::unordered_map <std::string, std::shared_ptr<logger>> _loggers;
|
std::unordered_map <std::string, std::shared_ptr<logger>> _loggers;
|
||||||
#endif
|
|
||||||
|
|
||||||
formatter_ptr _formatter;
|
formatter_ptr _formatter;
|
||||||
level::level_enum _level = level::info;
|
level::level_enum _level = level::info;
|
||||||
bool _async_mode = false;
|
bool _async_mode = false;
|
||||||
|
@ -65,16 +65,3 @@
|
|||||||
// #define SPDLOG_TRACE_ON
|
// #define SPDLOG_TRACE_ON
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Uncomment to avoid locking in the registry operations (spdlog::get() spdlog::drop() spdlog::register())
|
|
||||||
// Use only if your code is single threaded or never modifes concurrently the registry
|
|
||||||
// #define SPDLOG_NO_REGISTRY_MUTEX
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Uncomment to enable vector based registry instead of the default unordered_map
|
|
||||||
// spdlog::get(..) operations will be faster on small registry sizes (upto ~10-20 loggers)
|
|
||||||
// #define SPDLOG_VECTOR_BASED_REGISTRY
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
Loading…
Reference in New Issue
Block a user