diff --git a/phosphor-logging/sdjournal.hpp b/phosphor-logging/sdjournal.hpp
index 975a52e..73e3f41 100644
--- a/phosphor-logging/sdjournal.hpp
+++ b/phosphor-logging/sdjournal.hpp
@@ -1,9 +1,5 @@
 #pragma once
 
-#include <systemd/sd-journal.h>
-
-#include <cstdarg>
-
 namespace phosphor
 {
 namespace logging
@@ -30,10 +26,7 @@
      * @return an int meant to be intepreted by the journal_send caller during
      * testing.
      */
-    virtual int journal_send_call(const char* /*fmt*/)
-    {
-        return 0;
-    };
+    virtual int journal_send_call(const char* fmt);
 
     /**
      * Send the information to sd_journal_send.
@@ -45,16 +38,7 @@
      * sentinel default makes sure the last parameter is null.
      */
     virtual int journal_send(const char* fmt, ...)
-        __attribute__((format(printf, 2, 0))) __attribute__((sentinel))
-    {
-        va_list args;
-        va_start(args, fmt);
-
-        int rc = ::sd_journal_send(fmt, args, NULL);
-        va_end(args);
-
-        return rc;
-    }
+        __attribute__((format(printf, 2, 0))) __attribute__((sentinel));
 };
 
 extern SdJournalHandler* sdjournal_ptr;
diff --git a/sdjournal.cpp b/sdjournal.cpp
index 77ced46..76c28e9 100644
--- a/sdjournal.cpp
+++ b/sdjournal.cpp
@@ -1,5 +1,6 @@
-#include "config.h"
+#include <systemd/sd-journal.h>
 
+#include <cstdarg>
 #include <phosphor-logging/sdjournal.hpp>
 
 namespace phosphor
@@ -7,6 +8,22 @@
 namespace logging
 {
 
+int SdJournalHandler::journal_send_call(const char*)
+{
+    return 0;
+}
+
+int SdJournalHandler::journal_send(const char* fmt, ...)
+{
+    va_list args;
+    va_start(args, fmt);
+
+    int rc = ::sd_journal_send(fmt, args, NULL);
+    va_end(args);
+
+    return rc;
+}
+
 SdJournalHandler sdjournal_impl;
 SdJournalHandler* sdjournal_ptr = &sdjournal_impl;
 
