diff --git a/src/shared/logger/Logger.cpp b/src/shared/logger/Logger.cpp
index 31876f6014c64a9e77bae874c4b26fcd7442725b..dbb750e96abf5343305b6592145644a5ede1884b 100644
--- a/src/shared/logger/Logger.cpp
+++ b/src/shared/logger/Logger.cpp
@@ -104,8 +104,7 @@ bool Logger::start()
         return false;
     }
 
-    started         = true;
-    stats.logNumber = fileNumber;
+    started = true;
 
     return true;
 }
@@ -139,10 +138,23 @@ int Logger::getCurrentLogNumber() { return fileNumber; }
 
 string Logger::getCurrentFileName() { return getFileName(fileNumber); }
 
-LoggerStats Logger::getLoggerStats() { return stats; }
+LoggerStats Logger::getLoggerStats()
+{
+    stats.timestamp = TimestampTimer::getInstance().getTimestamp();
+    stats.logNumber = fileNumber;
+    return stats;
+}
 
 bool Logger::isStarted() const { return started; }
 
+void Logger::logStats()
+{
+    log(getLoggerStats());
+
+    // Reset the logger stats after they have been logger
+    stats = LoggerStats();
+}
+
 Logger::Logger()
 {
     // Allocate the records
@@ -346,10 +358,4 @@ LoggerResult Logger::logImpl(const char* name, const void* data,
     return LoggerResult::Queued;
 }
 
-void Logger::logStats()
-{
-    stats.timestamp = TimestampTimer::getInstance().getTimestamp();
-    log(stats);
-}
-
 }  // namespace Boardcore
diff --git a/src/shared/logger/Logger.h b/src/shared/logger/Logger.h
index f1ad95f7b077151a555348400c4ff10d82aa98ce..33e9067a9b9a04c7d4c7f64d0e31028eef45a4d1 100644
--- a/src/shared/logger/Logger.h
+++ b/src/shared/logger/Logger.h
@@ -115,6 +115,11 @@ public:
     template <typename T>
     LoggerResult log(const T &t);
 
+    /**
+     * @brief Log logger stats using the logger itself.
+     */
+    void logStats();
+
 private:
     Logger();
 
@@ -143,11 +148,6 @@ private:
      */
     LoggerResult logImpl(const char *name, const void *data, unsigned int size);
 
-    /**
-     * @brief Log logger stats using the logger itself.
-     */
-    void logStats();
-
     static constexpr unsigned int maxFilenameNumber = 100;  ///< Limit on files
     static constexpr unsigned int maxRecordSize     = 512;  ///< Limit on data
     static constexpr unsigned int numRecords = 512;  ///< Size of record queues