diff --git a/emper/Debug.hpp b/emper/Debug.hpp
index a4d99c28fcb2a8b1d7895a9c523ad770201d5a19..ff0cc2a4fe6d87c05564aeb31e7eb4108db11b97 100644
--- a/emper/Debug.hpp
+++ b/emper/Debug.hpp
@@ -3,7 +3,6 @@
 #pragma once
 
 #include <iostream>	 // IWYU pragma: keep
-#include <map>			 // for allocator, map
 #include <sstream>	 // IWYU pragma: keep
 #include <string>		 // for string, operator<<
 
@@ -77,16 +76,33 @@ enum LogLevel {
 
 void worker_log(const std::string& prefix, const std::string& message);
 
-static const std::map<LogSubsystem, LogLevel> LOG_CONFIG = {
-		{LogSubsystem::PS, ALL},		{LogSubsystem::F, ALL},					 {LogSubsystem::C, ALL},
-		{LogSubsystem::CM, ALL},		{LogSubsystem::DISP, ALL},			 {LogSubsystem::SCHED, ALL},
-		{LogSubsystem::RUNTI, ALL}, {LogSubsystem::U_B_MPSC_Q, ALL},
-};
-
 template <LogSubsystem logSubsystem>
 class Logger {
  private:
-	static constexpr auto getTagFor(LogSubsystem system) -> char const* {
+	static constexpr LogLevel getLevelFor(LogSubsystem system) {
+		switch (system) {
+			case LogSubsystem::PS:
+				return ALL;
+			case LogSubsystem::F:
+				return ALL;
+			case LogSubsystem::C:
+				return ALL;
+			case LogSubsystem::CM:
+				return ALL;
+			case LogSubsystem::DISP:
+				return ALL;
+			case LogSubsystem::SCHED:
+				return ALL;
+			case LogSubsystem::RUNTI:
+				return ALL;
+			case LogSubsystem::U_B_MPSC_Q:
+				return ALL;
+			default:
+				return ALL;
+		}
+	}
+
+	static constexpr char const* getTagFor(LogSubsystem system) {
 		switch (system) {
 			case LogSubsystem::PS:
 				return "PS   ";
@@ -125,7 +141,7 @@ class Logger {
 		// Do not log any debug messages if NDEBUG is defined.
 		if (level >= Debug) return;
 #endif
-		if (level > LOG_CONFIG.at(logSubsystem)) return;
+		if (level > getLevelFor(logSubsystem)) return;
 
 		std::string subSystemTag = getTagFor(logSubsystem);
 		;