[Python] Use Python logging everywhere (#32383)

Do not print to the console but use the Python logging module
explicitly.
diff --git a/src/controller/python/chip/ChipDeviceCtrl.py b/src/controller/python/chip/ChipDeviceCtrl.py
index 318c2b5..bf9bb24 100644
--- a/src/controller/python/chip/ChipDeviceCtrl.py
+++ b/src/controller/python/chip/ChipDeviceCtrl.py
@@ -34,6 +34,7 @@
 import ctypes
 import enum
 import json
+import logging
 import threading
 import time
 import typing
@@ -265,9 +266,9 @@
     def _set_dev_ctrl(self, devCtrl):
         def HandleCommissioningComplete(nodeid, err):
             if err.is_success:
-                print("Commissioning complete")
+                logging.info("Commissioning complete")
             else:
-                print("Failed to commission: {}".format(err))
+                logging.warning("Failed to commission: {}".format(err))
 
             self.state = DCState.IDLE
             self._ChipStack.callbackRes = err
@@ -283,30 +284,30 @@
         def HandleOpenWindowComplete(nodeid: int, setupPinCode: int, setupManualCode: str,
                                      setupQRCode: str, err: PyChipError) -> None:
             if err.is_success:
-                print("Open Commissioning Window complete setting nodeid {} pincode to {}".format(nodeid, setupPinCode))
+                logging.info("Open Commissioning Window complete setting nodeid {} pincode to {}".format(nodeid, setupPinCode))
                 self._ChipStack.openCommissioningWindowPincode[nodeid] = CommissioningParameters(
                     setupPinCode=setupPinCode, setupManualCode=setupManualCode.decode(), setupQRCode=setupQRCode.decode())
             else:
-                print("Failed to open commissioning window: {}".format(err))
+                logging.warning("Failed to open commissioning window: {}".format(err))
 
             self._ChipStack.callbackRes = err
             self._ChipStack.completeEvent.set()
 
         def HandleUnpairDeviceComplete(nodeid: int, err: PyChipError):
             if err.is_success:
-                print("Succesfully unpaired device with nodeid {}".format(nodeid))
+                logging.info("Succesfully unpaired device with nodeid {}".format(nodeid))
             else:
-                print("Failed to unpair device: {}".format(err))
+                logging.warning("Failed to unpair device: {}".format(err))
 
             self._ChipStack.callbackRes = err
             self._ChipStack.completeEvent.set()
 
         def HandlePASEEstablishmentComplete(err: PyChipError):
             if not err.is_success:
-                print("Failed to establish secure session to device: {}".format(err))
+                logging.warning("Failed to establish secure session to device: {}".format(err))
                 self._ChipStack.callbackRes = err.to_exception()
             else:
-                print("Established secure session with Device")
+                logging.info("Established secure session with Device")
 
             if self.state != DCState.COMMISSIONING:
                 # During Commissioning, HandlePASEEstablishmentComplete will also be called,
@@ -785,7 +786,7 @@
             res = self._ChipStack.Call(lambda: self._dmLib.pychip_GetDeviceBeingCommissioned(
                 self.devCtrl, nodeid, byref(returnDevice)), timeoutMs)
             if res.is_success:
-                print('Using PASE connection')
+                logging.info('Using PASE connection')
                 return DeviceProxyWrapper(returnDevice)
 
         class DeviceAvailableClosure():
@@ -1151,7 +1152,7 @@
             # Wildcard
             pass
         elif not isinstance(pathTuple, tuple):
-            print(type(pathTuple))
+            logging.debug(type(pathTuple))
             if isinstance(pathTuple, int):
                 endpoint = pathTuple
             elif issubclass(pathTuple, ClusterObjects.Cluster):
@@ -1426,7 +1427,7 @@
             raise UnknownCommand(cluster, command)
         try:
             res = asyncio.run(self.SendCommand(nodeid, endpoint, req))
-            print(f"CommandResponse {res}")
+            logging.debug(f"CommandResponse {res}")
             return (0, res)
         except InteractionModelError as ex:
             return (int(ex.status), None)