diff --git a/src/adaptations/device-layer/DeviceDescriptionServer.cpp b/src/adaptations/device-layer/DeviceDescriptionServer.cpp
index afe2624..c16c25c 100644
--- a/src/adaptations/device-layer/DeviceDescriptionServer.cpp
+++ b/src/adaptations/device-layer/DeviceDescriptionServer.cpp
@@ -104,9 +104,8 @@
     {
         char ipAddrStr[64];
         nodeAddr.ToString(ipAddrStr, sizeof(ipAddrStr));
-
-        WeaveLogProgress(DeviceLayer, "IdentifyRequest received from node %" PRIX64 " (%s)", nodeId, ipAddrStr);
-        WeaveLogProgress(DeviceLayer, "  Target Fabric Id: %016" PRIX64, reqMsg.TargetFabricId);
+        WeaveLogProgress(DeviceLayer, "IdentifyRequest received from node %s (%s)", WEAVE_PII_FMT("%" PRIX64, nodeId), WEAVE_PII(ipAddrStr));
+        WeaveLogProgress(DeviceLayer, "  Target Fabric Id: %s", WEAVE_PII_FMT("%016" PRIX64, reqMsg.TargetFabricId));
         WeaveLogProgress(DeviceLayer, "  Target Modes: %08" PRIX32, reqMsg.TargetModes);
         WeaveLogProgress(DeviceLayer, "  Target Vendor Id: %04" PRIX16, reqMsg.TargetVendorId);
         WeaveLogProgress(DeviceLayer, "  Target Product Id: %04" PRIX16, reqMsg.TargetProductId);
diff --git a/src/adaptations/device-layer/GeneralUtils.cpp b/src/adaptations/device-layer/GeneralUtils.cpp
index eadc44d..6c80268 100644
--- a/src/adaptations/device-layer/GeneralUtils.cpp
+++ b/src/adaptations/device-layer/GeneralUtils.cpp
@@ -200,6 +200,31 @@
     return true;
 }
 
+/**
+ * Utility function to produce a std::string with printf-style formatting.
+ */
+std::string FormatString(const char* fmt, ...) {
+  std::string buffer;
+  char dummy_buffer;
+  size_t size;
+  va_list args;
+
+  // Determine size of buffer.
+  va_start(args, fmt);
+  size = vsnprintf(&dummy_buffer, 0, fmt, args);
+  va_end(args);
+
+  // Allocate buffer (snprintf always writes a null terminator).
+  buffer.resize(size + 1);
+
+  // Format into buffer.
+  va_start(args, fmt);
+  vsnprintf(buffer.data(), buffer.size(), fmt, args);
+  va_end(args);
+
+  return buffer;
+}
+
 } // namespace DeviceLayer
 } // namespace Weave
 } // namespace nl
diff --git a/src/adaptations/device-layer/include/Weave/DeviceLayer/GeneralUtils.h b/src/adaptations/device-layer/include/Weave/DeviceLayer/GeneralUtils.h
index faefb84..c47816e 100644
--- a/src/adaptations/device-layer/include/Weave/DeviceLayer/GeneralUtils.h
+++ b/src/adaptations/device-layer/include/Weave/DeviceLayer/GeneralUtils.h
@@ -21,6 +21,22 @@
  *          General utility functions available on all platforms.
  */
 
+/**
+ * WEAVE_PII and WEAVE_PII_FMT
+ *
+ * Used to mark information that could be used to identify a specific user or device. This info will
+ * only be logged when PII logging is enabled, otherwise the string will be redacted.
+ *
+ * The _FMT variant additionally formats the PII by the given printf format string.
+ */
+#if WEAVE_DEVICE_CONFIG_LOG_PII
+#define WEAVE_PII(pii) pii
+#define WEAVE_PII_FMT(fmt, pii) ::nl::Weave::DeviceLayer::FormatString(fmt, pii).data()
+#else
+#define WEAVE_PII(pii) "[PII Redacted]"
+#define WEAVE_PII_FMT(fmt, pii) "[PII Redacted]"
+#endif
+
 namespace nl {
 namespace Weave {
 namespace DeviceLayer {
@@ -31,6 +47,7 @@
 extern const char * CharacterizeIPv6Prefix(const Inet::IPPrefix & inPrefix);
 extern void RegisterDeviceLayerErrorFormatter(void);
 extern bool FormatDeviceLayerError(char * buf, uint16_t bufSize, int32_t err);
+extern std::string FormatString(const char* fmt, ...);
 
 } // namespace DeviceLayer
 } // namespace Weave
diff --git a/src/adaptations/device-layer/include/Weave/DeviceLayer/WeaveDeviceConfig.h b/src/adaptations/device-layer/include/Weave/DeviceLayer/WeaveDeviceConfig.h
index d3abf26..b8475e5 100644
--- a/src/adaptations/device-layer/include/Weave/DeviceLayer/WeaveDeviceConfig.h
+++ b/src/adaptations/device-layer/include/Weave/DeviceLayer/WeaveDeviceConfig.h
@@ -130,6 +130,18 @@
 #define WEAVE_DEVICE_CONFIG_LOG_PROVISIONING_HASH 1
 #endif
 
+/**
+ * WEAVE_DEVICE_CONFIG_LOG_PII
+ *
+ * Log information that could be used to identify a user or device.
+ *
+ * The default is (!NDEBUG) to ensure logging of sensitive info is not enabled in non-debug
+ * contexts.
+ */
+#ifndef WEAVE_DEVICE_CONFIG_LOG_PII
+#define WEAVE_DEVICE_CONFIG_LOG_PII (!NDEBUG)
+#endif
+
 // -------------------- Device Identification Configuration --------------------
 
 /**
diff --git a/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConfigurationManagerImpl.ipp b/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConfigurationManagerImpl.ipp
index a7efb4f..8e56e66 100644
--- a/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConfigurationManagerImpl.ipp
+++ b/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericConfigurationManagerImpl.ipp
@@ -1085,13 +1085,13 @@
 
     WeaveLogProgress(DeviceLayer, "Device Configuration:");
 
-    WeaveLogProgress(DeviceLayer, "  Device Id: %016" PRIX64, FabricState.LocalNodeId);
+    WeaveLogProgress(DeviceLayer, "  Device Id: %s", WEAVE_PII_FMT("%016" PRIX64, FabricState.LocalNodeId));
 
     {
         char serialNum[ConfigurationManager::kMaxSerialNumberLength + 1];
         size_t serialNumLen;
         err = Impl()->_GetSerialNumber(serialNum, sizeof(serialNum), serialNumLen);
-        WeaveLogProgress(DeviceLayer, "  Serial Number: %s", (err == WEAVE_NO_ERROR) ? serialNum : "(not set)");
+        WeaveLogProgress(DeviceLayer, "  Serial Number: %s", (err == WEAVE_NO_ERROR) ? WEAVE_PII(serialNum) : "(not set)");
     }
 
     {
@@ -1138,14 +1138,14 @@
 
     if (FabricState.FabricId != kFabricIdNotSpecified)
     {
-        WeaveLogProgress(DeviceLayer, "  Fabric Id: %016" PRIX64, FabricState.FabricId);
+        WeaveLogProgress(DeviceLayer, "  Fabric Id: %s", WEAVE_PII_FMT("%016" PRIX64, FabricState.FabricId));
     }
     else
     {
         WeaveLogProgress(DeviceLayer, "  Fabric Id: (none)");
     }
 
-    WeaveLogProgress(DeviceLayer, "  Pairing Code: %s", (FabricState.PairingCode != NULL) ? FabricState.PairingCode : "(none)");
+    WeaveLogProgress(DeviceLayer, "  Pairing Code: %s", (FabricState.PairingCode != NULL) ? WEAVE_PII(FabricState.PairingCode) : "(none)");
 }
 
 #endif // WEAVE_PROGRESS_LOGGING
