diff --git a/include/core/utils/logging.h b/include/core/utils/logging.h
index df58dfd1fb8e57857e86fba961cdb7ff017d06ba..9c94909e2e4093ccb59f4ee0a07a0c4726913410 100644
--- a/include/core/utils/logging.h
+++ b/include/core/utils/logging.h
@@ -34,8 +34,10 @@
 
 // spdlog include
 #include "spdlog/spdlog.h"
+#include "spdlog/async.h"
 // enable the use of ostream operator<<
-#include "spdlog/fmt/bundled/ostream.h"
+#include "spdlog/fmt/ostr.h"
+#include "spdlog/sinks/stdout_color_sinks.h"
 
 // Wolf includes
 #include "core/utils/singleton.h"
@@ -125,7 +127,7 @@ inline Logger::Logger(const std::string& name) :
 
   // Enable asynchronous logging
   // Queue size must be a power of 2
-  spdlog::set_async_mode(4096);
+  spdlog::init_thread_pool(4096, 1);
 
   if (log_name_ == __INTERNAL_WOLF_MAIN_LOGGER_NAME_)
     // Logging pattern is :
@@ -154,7 +156,7 @@ inline Logger::Logger(std::string&& name) :
 
   // Enable asynchronous logging
   // Queue size must be a power of 2
-  spdlog::set_async_mode(4096);
+  spdlog::init_thread_pool(4096, 1);
 
   if (log_name_ == __INTERNAL_WOLF_MAIN_LOGGER_NAME_)
     // Logging pattern is :
@@ -209,8 +211,7 @@ void Logger::trace(Args&&... args) const
 inline bool Logger::set_async_queue(const std::size_t q_size)
 {
   bool p2 = q_size%2 == 0;
-
-  if (p2) spdlog::set_async_mode(q_size);
+  if (p2) spdlog::init_thread_pool(q_size, 1);
 
   return q_size;
 }