Revert "Added a function to add callbacks that are called when a logger is registered (#2883)"

This reverts commit b6eeb7364c, since it causes deadlocks too easily for the users.
This commit is contained in:
gabime
2023-09-25 20:53:45 +03:00
parent b6eeb7364c
commit e5865186d4
5 changed files with 0 additions and 72 deletions

View File

@@ -259,22 +259,6 @@ SPDLOG_INLINE void registry::register_logger_(std::shared_ptr<logger> new_logger
auto logger_name = new_logger->name();
throw_if_exists_(logger_name);
loggers_[logger_name] = std::move(new_logger);
const auto& logger = loggers_[logger_name];
for (const auto& on_registration_callback : on_registration_callbacks_) {
on_registration_callback(logger);
}
}
SPDLOG_INLINE void registry::add_on_registration_callback(
const std::function<void(std::shared_ptr<logger>)>& callback) {
std::lock_guard<std::mutex> lock(logger_map_mutex_);
on_registration_callbacks_.push_back(callback);
}
SPDLOG_INLINE void registry::drop_all_on_registration_callbacks() {
std::lock_guard<std::mutex> lock(logger_map_mutex_);
on_registration_callbacks_.clear();
}
} // namespace details

View File

@@ -17,7 +17,6 @@
#include <mutex>
#include <string>
#include <unordered_map>
#include <vector>
namespace spdlog {
class logger;
@@ -93,10 +92,6 @@ public:
void apply_logger_env_levels(std::shared_ptr<logger> new_logger);
void add_on_registration_callback(const std::function<void(std::shared_ptr<logger>)>& callback);
void drop_all_on_registration_callbacks();
private:
registry();
~registry();
@@ -117,7 +112,6 @@ private:
std::shared_ptr<logger> default_logger_;
bool automatic_registration_ = true;
size_t backtrace_n_messages_ = 0;
std::vector<std::function<void(std::shared_ptr<logger>)>> on_registration_callbacks_;
};
} // namespace details

View File

@@ -89,12 +89,4 @@ SPDLOG_INLINE void apply_logger_env_levels(std::shared_ptr<logger> logger) {
details::registry::instance().apply_logger_env_levels(std::move(logger));
}
SPDLOG_INLINE void add_on_registration_callback(const std::function<void(const std::shared_ptr<logger>&)>& callback) {
details::registry::instance().add_on_registration_callback(callback);
}
SPDLOG_INLINE void drop_all_on_registration_callbacks() {
details::registry::instance().drop_all_on_registration_callbacks();
}
} // namespace spdlog

View File

@@ -140,21 +140,6 @@ SPDLOG_API void set_default_logger(std::shared_ptr<spdlog::logger> default_logge
// spdlog::apply_logger_env_levels(mylogger);
SPDLOG_API void apply_logger_env_levels(std::shared_ptr<logger> logger);
// Add a callback that is called whenever a logger is registered
//
// Useful for intercepting loggers that are dynamically created during the application's lifetime
// (e.g. from dynamically loaded libraries, etc.)
// Example:
// void my_on_registration_callback(const std::shared_ptr<spdlog::logger>& logger) {
// logger->do_stuff();
// }
// ...
// spdlog::add_on_registration_callback(my_on_registration_callback);
SPDLOG_API void add_on_registration_callback(const std::function<void(const std::shared_ptr<logger>&)>& callback);
// Clear all callbacks that were added to intercept registrations (see "add_on_registration_callback")
SPDLOG_API void drop_all_on_registration_callbacks();
template <typename... Args>
inline void log(source_loc source,
level::level_enum lvl,