diff --git a/src/base/misc.cc b/src/base/misc.cc
index 2392d51..be97368 100644
--- a/src/base/misc.cc
+++ b/src/base/misc.cc
@@ -51,21 +51,6 @@
 #include "base/types.hh"
 #include "sim/core.hh"
 
-
-Logger &
-Logger::get(LogLevel ll)
-{
-    static std::array<Logger *, NUM_LOG_LEVELS> loggers{{
-        new ExitLogger(std::cerr, "panic"),
-        new ExitLogger(std::cerr, "fatal"),
-        new Logger(std::cerr, "warn"),
-        new Logger(std::cerr, "info"),
-        new Logger(std::cerr, "hack"),
-    }};
-
-    return *loggers[ll];
-}
-
 void
 Logger::setLevel(LogLevel ll)
 {
@@ -104,6 +89,15 @@
     }
 }
 
+class ExitLogger : public Logger
+{
+  public:
+    using Logger::Logger;
+
+    void printEpilogue(const char *func, const char *file, int line,
+                       const char *format) override;
+};
+
 void
 ExitLogger::printEpilogue(const char *func, const char *file, int line,
                             const char *format)
@@ -112,3 +106,17 @@
 
     ccprintf(stream, "Memory Usage: %ld KBytes\n", memUsage());
 }
+
+Logger &
+Logger::get(LogLevel ll)
+{
+    static std::array<Logger *, NUM_LOG_LEVELS> loggers{{
+        new ExitLogger(std::cerr, "panic"),
+        new ExitLogger(std::cerr, "fatal"),
+        new Logger(std::cerr, "warn"),
+        new Logger(std::cerr, "info"),
+        new Logger(std::cerr, "hack"),
+    }};
+
+    return *loggers[ll];
+}
diff --git a/src/base/misc.hh b/src/base/misc.hh
index a731c76..7b0d462 100644
--- a/src/base/misc.hh
+++ b/src/base/misc.hh
@@ -125,15 +125,6 @@
     const char *prefix;
 };
 
-class ExitLogger : public Logger
-{
-  public:
-    using Logger::Logger;
-
-    void printEpilogue(const char *func, const char *file, int line,
-                       const char *format) override;
-};
-
 #define exit_message(logger, code, ...)                                 \
     do {                                                                \
         logger.print(__FUNCTION__, __FILE__, __LINE__, __VA_ARGS__);    \
