diff --git a/src/shared/logger/Deserializer.h b/src/shared/logger/Deserializer.h
index ce3009c4f44e48fa3f158de4700d6e5752263fa1..e22bf5fe27cef1c531f7ca9cf7c35a444741c086 100644
--- a/src/shared/logger/Deserializer.h
+++ b/src/shared/logger/Deserializer.h
@@ -30,6 +30,7 @@
 #include <iostream>
 #include <limits>
 #include <ostream>
+#include <regex>
 #include <string>
 #include <vector>
 
@@ -130,8 +131,13 @@ void Deserializer::registerType()
 template <typename T>
 void Deserializer::printType(T& t, std::string path, std::string prefix)
 {
-    std::string demangledTypeName = tscpp::demangle(typeid(T).name());
     static std::ofstream* stream;
+    std::string demangledTypeName = tscpp::demangle(typeid(T).name());
+
+    // Replace the :: with the _ in order to make the format string cross
+    // platform compatible
+    demangledTypeName =
+        std::regex_replace(demangledTypeName, std::regex("::"), "_");
 
     try
     {