diff --git a/mainapp.cpp b/mainapp.cpp
index 6cc3fdf..bf60c88 100644
--- a/mainapp.cpp
+++ b/mainapp.cpp
@@ -18,12 +18,14 @@
 #include <phosphor-logging/log.hpp>
 #include <phosphor-logging/elog.hpp>
 #include <phosphor-logging/elog-errors.hpp>
+#include <string>
 #include <xyz/openbmc_project/Common/error.hpp>
 #include "argument.hpp"
 #include "watchdog.hpp"
 
 using phosphor::watchdog::ArgumentParser;
 using phosphor::watchdog::Watchdog;
+using sdbusplus::xyz::openbmc_project::State::server::convertForMessage;
 
 static void exitWithError(const char* err, char** argv)
 {
@@ -32,6 +34,18 @@
     exit(EXIT_FAILURE);
 }
 
+void printActionTargets(
+        const std::map<Watchdog::Action, std::string>& actionTargets)
+{
+    std::cerr << "Action Targets:\n";
+    for (const auto& actionTarget : actionTargets)
+    {
+        std::cerr << "  " << convertForMessage(actionTarget.first) << " -> " <<
+            actionTarget.second << "\n";
+    }
+    std::cerr << std::flush;
+}
+
 int main(int argc, char** argv)
 {
     using namespace phosphor::logging;
@@ -89,6 +103,8 @@
         actionTargets[Watchdog::Action::PowerCycle] = target;
     }
 
+    printActionTargets(actionTargets);
+
     sd_event* event = nullptr;
     auto r = sd_event_default(&event);
     if (r < 0)
