Skip to content
Snippets Groups Projects
Verified Commit e1c57a55 authored by Alberto Miranda's avatar Alberto Miranda :hotsprings:
Browse files

WIP: fix logger (merge with previous)

parent 0ad18d79
No related branches found
No related tags found
1 merge request!92Resolve "Adhoc storage deployment needs to be executed by `scord-ctl` instead of `scord`"
......@@ -49,6 +49,8 @@ logger_setup(const char* ident, logger_type type, const char* log_file) {
void
logger_log(enum logger_level level, const char* fmt, ...) {
using logger::logger;
if(const auto logger = logger::get_global_logger(); logger) {
std::array<char, LOGGER_MSG_MAX_LEN> msg; // NOLINT
......@@ -79,7 +81,9 @@ logger_log(enum logger_level level, const char* fmt, ...) {
void
logger_destroy() {
using logger::logger;
if(logger::get_global_logger()) {
logger::destroy_global_logger();
::logger::destroy_global_logger();
}
}
......@@ -165,6 +165,12 @@ public:
spdlog::shutdown();
}
static std::shared_ptr<logger>&
get_global_logger() {
static std::shared_ptr<logger> s_global_logger;
return s_global_logger;
}
// the following member functions can be used to interact
// with a specific logger instance
inline void
......@@ -291,26 +297,27 @@ private:
// the following static functions can be used to interact
// with a globally registered logger instance
static inline std::shared_ptr<logger>&
get_global_logger() {
static std::shared_ptr<logger> s_global_logger;
return s_global_logger;
}
template <typename... Args>
static inline void
create_global_logger(Args&&... args) {
get_global_logger() = std::make_shared<logger>(args...);
logger::get_global_logger() = std::make_shared<logger>(args...);
}
static inline void
register_global_logger(logger&& lg) {
get_global_logger() = std::make_shared<logger>(std::move(lg));
logger::get_global_logger() = std::make_shared<logger>(std::move(lg));
}
static inline void
destroy_global_logger() {
get_global_logger().reset();
logger::get_global_logger().reset();
}
static inline void
flush_global_logger() {
if(logger::get_global_logger()) {
logger::get_global_logger()->flush();
}
}
......
......@@ -31,6 +31,7 @@
#define LOGGER_INFO(...) \
do { \
using logger::logger; \
if(logger::get_global_logger()) { \
logger::get_global_logger()->info(__VA_ARGS__); \
} \
......@@ -41,6 +42,7 @@
#define LOGGER_DEBUG(...) \
do { \
using logger::logger; \
if(logger::get_global_logger()) { \
logger::get_global_logger()->debug(__VA_ARGS__); \
} \
......@@ -48,6 +50,7 @@
#define LOGGER_FLUSH() \
do { \
using logger::logger; \
if(logger::get_global_logger()) { \
logger::get_global_logger()->flush(); \
} \
......@@ -66,6 +69,7 @@
#define LOGGER_WARN(...) \
do { \
using logger::logger; \
if(logger::get_global_logger()) { \
logger::get_global_logger()->warn(__VA_ARGS__); \
} \
......@@ -73,6 +77,7 @@
#define LOGGER_ERROR(...) \
do { \
using logger::logger; \
if(logger::get_global_logger()) { \
logger::get_global_logger()->error(__VA_ARGS__); \
} \
......@@ -80,6 +85,7 @@
#define LOGGER_ERRNO(...) \
do { \
using logger::logger; \
if(logger::get_global_logger()) { \
logger::get_global_logger()->error_errno(__VA_ARGS__); \
} \
......@@ -87,6 +93,7 @@
#define LOGGER_CRITICAL(...) \
do { \
using logger::logger; \
using logger::logger; \
if(logger::get_global_logger()) { \
logger::get_global_logger()->critical(__VA_ARGS__); \
......
......@@ -213,7 +213,7 @@ server::signal_handler(int signum) {
case SIGHUP:
LOGGER_WARN("A signal (SIGHUP) occurred.");
logger::get_global_logger()->flush();
logger::flush_global_logger();
break;
default:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment