diff --git a/phosphor-power-supply/power_supply.cpp b/phosphor-power-supply/power_supply.cpp
index ba3eb2e..4771183 100644
--- a/phosphor-power-supply/power_supply.cpp
+++ b/phosphor-power-supply/power_supply.cpp
@@ -199,11 +199,13 @@
     {
         if (cmlFault < DEGLITCH_LIMIT)
         {
-            log<level::ERR>(fmt::format("CML fault: STATUS_WORD = {:#06x}, "
-                                        "STATUS_CML = {:#04x}",
-                                        statusWord, statusCML)
-                                .c_str());
-
+            if (statusWord != statusWordOld)
+            {
+                log<level::ERR>(fmt::format("CML fault: STATUS_WORD = {:#06x}, "
+                                            "STATUS_CML = {:#02x}",
+                                            statusWord, statusCML)
+                                    .c_str());
+            }
             cmlFault++;
         }
     }
@@ -219,12 +221,15 @@
     {
         if (inputFault < DEGLITCH_LIMIT)
         {
-            log<level::ERR>(fmt::format("INPUT fault: STATUS_WORD = {:#06x}, "
-                                        "STATUS_MFR_SPECIFIC = {:#04x}, "
-                                        "STATUS_INPUT = {:#04x}",
-                                        statusWord, statusMFR, statusInput)
-                                .c_str());
-
+            if (statusWord != statusWordOld)
+            {
+                log<level::ERR>(
+                    fmt::format("INPUT fault: STATUS_WORD = {:#06x}, "
+                                "STATUS_MFR_SPECIFIC = {:#04x}, "
+                                "STATUS_INPUT = {:#04x}",
+                                statusWord, statusMFR, statusInput)
+                        .c_str());
+            }
             inputFault++;
         }
     }
@@ -250,12 +255,15 @@
     {
         if (voutOVFault < DEGLITCH_LIMIT)
         {
-            log<level::ERR>(
-                fmt::format("VOUT_OV_FAULT fault: STATUS_WORD = {:#06x}, "
-                            "STATUS_MFR_SPECIFIC = {:#04x}, "
-                            "STATUS_VOUT = {:#04x}",
-                            statusWord, statusMFR, statusVout)
-                    .c_str());
+            if (statusWord != statusWordOld)
+            {
+                log<level::ERR>(
+                    fmt::format("VOUT_OV_FAULT fault: STATUS_WORD = {:#06x}, "
+                                "STATUS_MFR_SPECIFIC = {:#04x}, "
+                                "STATUS_VOUT = {:#02x}",
+                                statusWord, statusMFR, statusVout)
+                        .c_str());
+            }
 
             voutOVFault++;
         }
@@ -272,11 +280,15 @@
     {
         if (ioutOCFault < DEGLITCH_LIMIT)
         {
-            log<level::ERR>(fmt::format("IOUT fault: STATUS_WORD = {:#06x}, "
-                                        "STATUS_MFR_SPECIFIC = {:#04x}, "
-                                        "STATUS_IOUT = {:#04x}",
-                                        statusWord, statusMFR, statusIout)
-                                .c_str());
+            if (statusWord != statusWordOld)
+            {
+                log<level::ERR>(
+                    fmt::format("IOUT fault: STATUS_WORD = {:#06x}, "
+                                "STATUS_MFR_SPECIFIC = {:#04x}, "
+                                "STATUS_IOUT = {:#04x}",
+                                statusWord, statusMFR, statusIout)
+                        .c_str());
+            }
 
             ioutOCFault++;
         }
@@ -294,13 +306,15 @@
     {
         if (voutUVFault < DEGLITCH_LIMIT)
         {
-            log<level::ERR>(
-                fmt::format("VOUT_UV_FAULT fault: STATUS_WORD = {:#06x}, "
-                            "STATUS_MFR_SPECIFIC = {:#04x}, "
-                            "STATUS_VOUT = {:#04x}",
-                            statusWord, statusMFR, statusVout)
-                    .c_str());
-
+            if (statusWord != statusWordOld)
+            {
+                log<level::ERR>(
+                    fmt::format("VOUT_UV_FAULT fault: STATUS_WORD = {:#06x}, "
+                                "STATUS_MFR_SPECIFIC = {:#04x}, "
+                                "STATUS_VOUT = {:#04x}",
+                                statusWord, statusMFR, statusVout)
+                        .c_str());
+            }
             voutUVFault++;
         }
     }
@@ -316,13 +330,15 @@
     {
         if (fanFault < DEGLITCH_LIMIT)
         {
-            log<level::ERR>(fmt::format("FANS fault/warning: "
-                                        "STATUS_WORD = {:#06x}, "
-                                        "STATUS_MFR_SPECIFIC = {:#04x}, "
-                                        "STATUS_FANS_1_2 = {:#04x}",
-                                        statusWord, statusMFR, statusFans12)
-                                .c_str());
-
+            if (statusWord != statusWordOld)
+            {
+                log<level::ERR>(fmt::format("FANS fault/warning: "
+                                            "STATUS_WORD = {:#06x}, "
+                                            "STATUS_MFR_SPECIFIC = {:#04x}, "
+                                            "STATUS_FANS_1_2 = {:#04x}",
+                                            statusWord, statusMFR, statusFans12)
+                                    .c_str());
+            }
             fanFault++;
         }
     }
@@ -338,14 +354,16 @@
     {
         if (tempFault < DEGLITCH_LIMIT)
         {
-            log<level::ERR>(fmt::format("TEMPERATURE fault/warning: "
-                                        "STATUS_WORD = {:#06x}, "
-                                        "STATUS_MFR_SPECIFIC = {:#04x}, "
-                                        "STATUS_TEMPERATURE = {:#04x}",
-                                        statusWord, statusMFR,
-                                        statusTemperature)
-                                .c_str());
-
+            if (statusWord != statusWordOld)
+            {
+                log<level::ERR>(fmt::format("TEMPERATURE fault/warning: "
+                                            "STATUS_WORD = {:#06x}, "
+                                            "STATUS_MFR_SPECIFIC = {:#04x}, "
+                                            "STATUS_TEMPERATURE = {:#04x}",
+                                            statusWord, statusMFR,
+                                            statusTemperature)
+                                    .c_str());
+            }
             tempFault++;
         }
     }
@@ -362,12 +380,14 @@
     {
         if (pgoodFault < DEGLITCH_LIMIT)
         {
-            log<level::ERR>(fmt::format("PGOOD fault: "
-                                        "STATUS_WORD = {:#06x}, "
-                                        "STATUS_MFR_SPECIFIC = {:#04x}",
-                                        statusWord, statusMFR)
-                                .c_str());
-
+            if (statusWord != statusWordOld)
+            {
+                log<level::ERR>(fmt::format("PGOOD fault: "
+                                            "STATUS_WORD = {:#06x}, "
+                                            "STATUS_MFR_SPECIFIC = {:#04x}",
+                                            statusWord, statusMFR)
+                                    .c_str());
+            }
             pgoodFault++;
         }
     }
@@ -426,11 +446,14 @@
     {
         if (mfrFault < DEGLITCH_LIMIT)
         {
-            log<level::ERR>(fmt::format("MFR fault: "
-                                        "STATUS_WORD = {:#06x} "
-                                        "STATUS_MFR_SPECIFIC = {:#04x}",
-                                        statusWord, statusMFR)
-                                .c_str());
+            if (statusWord != statusWordOld)
+            {
+                log<level::ERR>(fmt::format("MFR fault: "
+                                            "STATUS_WORD = {:#06x} "
+                                            "STATUS_MFR_SPECIFIC = {:#04x}",
+                                            statusWord, statusMFR)
+                                    .c_str());
+            }
             mfrFault++;
         }
 
@@ -448,11 +471,15 @@
     {
         if (vinUVFault < DEGLITCH_LIMIT)
         {
-            log<level::ERR>(fmt::format("VIN_UV fault: STATUS_WORD = {:#06x}, "
-                                        "STATUS_MFR_SPECIFIC = {:#04x}, "
-                                        "STATUS_INPUT = {:#04x}",
-                                        statusWord, statusMFR, statusInput)
-                                .c_str());
+            if (statusWord != statusWordOld)
+            {
+                log<level::ERR>(
+                    fmt::format("VIN_UV fault: STATUS_WORD = {:#06x}, "
+                                "STATUS_MFR_SPECIFIC = {:#04x}, "
+                                "STATUS_INPUT = {:#04x}",
+                                statusWord, statusMFR, statusInput)
+                        .c_str());
+            }
             vinUVFault++;
         }
     }
@@ -483,6 +510,7 @@
     {
         try
         {
+            statusWordOld = statusWord;
             statusWord = pmbusIntf->read(STATUS_WORD, Type::Debug,
                                          (readFail < LOG_LIMIT));
             // Read worked, reset the fail count.
@@ -522,6 +550,13 @@
             }
             else
             {
+                if (statusWord != statusWordOld)
+                {
+                    log<level::INFO>(fmt::format("STATUS_WORD = {:#06x} {}",
+                                                 statusWord, inventoryPath)
+                                         .c_str());
+                }
+
                 // if INPUT/VIN_UV fault was on, it cleared, trace it.
                 if (inputFault)
                 {
