diff --git a/phosphor-regulators/src/journal.cpp b/phosphor-regulators/src/journal.cpp
new file mode 100644
index 0000000..5139945
--- /dev/null
+++ b/phosphor-regulators/src/journal.cpp
@@ -0,0 +1,42 @@
+/**
+ * Copyright © 2020 IBM Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "journal.hpp"
+
+#include <phosphor-logging/log.hpp>
+
+using namespace phosphor::logging;
+
+/**
+ * This is the standard implementation of the journal interface.  It calls
+ * phosphor-logging functions to create real systemd journal entries.
+ *
+ * Testcases should link with the file mock_journal.cpp instead.
+ */
+namespace phosphor::power::regulators::journal
+{
+
+void logErr(const std::string& message)
+{
+    log<level::ERR>(message.c_str());
+}
+
+void logInfo(const std::string& message)
+{
+    log<level::INFO>(message.c_str());
+}
+
+} // namespace phosphor::power::regulators::journal
diff --git a/phosphor-regulators/src/journal.hpp b/phosphor-regulators/src/journal.hpp
new file mode 100644
index 0000000..f053c66
--- /dev/null
+++ b/phosphor-regulators/src/journal.hpp
@@ -0,0 +1,49 @@
+/**
+ * Copyright © 2020 IBM Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <string>
+
+/**
+ * Systemd journal interface.
+ *
+ * Provides functions to log informational and error messages to the journal.
+ *
+ * This interface provides an abstraction layer so that testcases can use a mock
+ * implementation and validate the logged messages.
+ *
+ * This interface does not currently provide the ability to specify key/value
+ * pairs to provide more information in the journal entry.  It will be added
+ * later if needed.
+ */
+namespace phosphor::power::regulators::journal
+{
+
+/**
+ * Logs a message with a priority value of 'ERR' to the systemd journal.
+ *
+ * @param message message to log
+ */
+void logErr(const std::string& message);
+
+/**
+ * Logs a message with a priority value of 'INFO' to the systemd journal.
+ *
+ * @param message message to log
+ */
+void logInfo(const std::string& message);
+
+} // namespace phosphor::power::regulators::journal
diff --git a/phosphor-regulators/src/meson.build b/phosphor-regulators/src/meson.build
index ef40cb9..3caa543 100644
--- a/phosphor-regulators/src/meson.build
+++ b/phosphor-regulators/src/meson.build
@@ -30,11 +30,13 @@
 
 phosphor_regulators = executable(
     'phosphor-regulators',
+    'journal.cpp',
     'main.cpp',
     dependencies: [
+        libi2c_dep,
+        phosphor_logging,
         sdbusplus,
-        sdeventplus,
-        libi2c_dep
+        sdeventplus
     ],
     link_with: phosphor_regulators_library,
     implicit_include_directories: false,
