diff --git a/src/PSUSensor.cpp b/src/PSUSensor.cpp
index e18f739..c5e8e35 100644
--- a/src/PSUSensor.cpp
+++ b/src/PSUSensor.cpp
@@ -118,6 +118,11 @@
             }
             if (static_cast<double>(nvalue) != value)
             {
+                if constexpr (DEBUG)
+                {
+                    std::cerr << "Update " << path << " from " << value
+                              << " to " << nvalue << "\n";
+                }
                 updateValue(nvalue);
             }
             errCount = 0;
diff --git a/src/PSUSensorMain.cpp b/src/PSUSensorMain.cpp
index 1c76cef..2eb280f 100644
--- a/src/PSUSensorMain.cpp
+++ b/src/PSUSensorMain.cpp
@@ -287,7 +287,9 @@
 
             if ((*confBus != bus) || (*confAddr != addr))
             {
-                std::cerr << "Configuration mismatch of bus or addr\n";
+                std::cerr << "Configuration skipping " << *confBus << "-"
+                          << *confAddr << " because not " << bus << "-" << addr
+                          << "\n";
                 continue;
             }
 
@@ -369,7 +371,8 @@
             std::ifstream labelFile(labelPath);
             if (!labelFile.good())
             {
-                std::cerr << "Failure reading " << sensorPath << "\n";
+                std::cerr << "Input file " << sensorPath
+                          << " has no corresponding label file\n";
                 labelHead = sensorNameStr.substr(0, sensorNameStr.find("_"));
             }
             else
@@ -386,11 +389,6 @@
                 labelHead = label.substr(0, label.find(" "));
             }
 
-            if constexpr (DEBUG)
-            {
-                std::cerr << "Sensor label head " << labelHead << "\n";
-            }
-
             checkPWMSensor(sensorPath, labelHead, *interfacePath, objectServer,
                            psuNames[0]);
 
@@ -441,6 +439,12 @@
                 continue;
             }
 
+            if constexpr (DEBUG)
+            {
+                std::cerr << "Sensor label head " << labelHead
+                          << " paired with " << psuNames[nameIndex] << "\n";
+            }
+
             checkEventLimits(sensorPathStr, limitEventMatch, eventPathList);
 
             unsigned int factor =
