diff --git a/examples/example3/ChildProcessControl3.py b/examples/example3/ChildProcessControl3.py
index 5e61cc90d748ceae0aa65736fff11da0feb61da2..a158a4e087f242989b40477acdf3b7796bce7a1d 100644
--- a/examples/example3/ChildProcessControl3.py
+++ b/examples/example3/ChildProcessControl3.py
@@ -1,3 +1,5 @@
+import logging
+
 from PySide6.QtCore import Signal
 
 import cmp
diff --git a/examples/example3/example3.py b/examples/example3/example3.py
index 8e1b454c3a64fb78e9e0c515e53b21b685a7cb14..a5836ea5f2d0ba9087545af6b032241a3ad20983 100644
--- a/examples/example3/example3.py
+++ b/examples/example3/example3.py
@@ -24,8 +24,8 @@ class Form(QDialog):
     def __init__(self, parent=None):
         super().__init__(parent)
 
-        child_con = ChildProcessControl3(self, internal_log=False, internal_log_level=logging.DEBUG)
-
+        child_con = ChildProcessControl3(self, internal_log=False, internal_log_level=logging.INFO)
+        child_con.set_internal_log_level(logging.CRITICAL)
         child_con.mp_finished.connect(self.updateUI)
 
 
diff --git a/src/cmp/CBase.py b/src/cmp/CBase.py
index 53e400f4418d863be3839ba5478192a4e5a3dfd2..f0e96700fe557945c9808c6855d4462a06b571ce 100644
--- a/src/cmp/CBase.py
+++ b/src/cmp/CBase.py
@@ -49,12 +49,14 @@ class CBase:
         """
         if self._internal_logger is not None:
             if enable:
+                self._internal_logger.disabled = False
                 self._internal_logger.info(f"Internal logger of {self.__class__.__name__} has been enabled.")
+
             else:
                 self._internal_logger.warning(f"Internal logger of {self.__class__.__name__} has been disabled.")
-            self._internal_logger.level = logging.ERROR
+                self._internal_logger.disabled = True
         else:
-            raise Exception("Can't enable internal logger. Internal logger not initialized")
+            raise Exception("Can't enable internal logger. Internal logger not initialized")#
 
     @property
     def internal_log_level(self):
@@ -80,8 +82,6 @@ class CBase:
                 self._internal_logger.info(f"Internal log level of {self.__class__.__name__} has been set to CRITICAL.")
             else:
                 self._internal_logger.info(f"Internal log level of {self.__class__.__name__} has been set to {level}.")
-
-
             self._internal_logger.setLevel(level)
         else:
             raise Exception("Can't set internal log level. Internal logger not initialized")
diff --git a/src/cmp/CProcess.py b/src/cmp/CProcess.py
index 87cf6ec074ff4aec45f32b59446f3af547677d27..4024440fb69703c0d511ffff2661ed0c6c826895 100644
--- a/src/cmp/CProcess.py
+++ b/src/cmp/CProcess.py
@@ -15,18 +15,16 @@ from cmp.CBase import CBase
 
 class CProcess(CBase, Process):
 
-    # override the print function
+
 
     def __init__(self, state_queue: Queue, cmd_queue: Queue,
                  kill_flag,
-                 internal_log: bool = False,
-                 internal_log_level=logging.DEBUG,
+                 internal_log, internal_log_level,
                  *args, **kwargs):
         Process.__init__(self)
 
         self._internal_log_enabled_ = internal_log
         self._internal_log_level_ = internal_log_level
-
         self.logger = None
         self.logger_handler = None
 
@@ -59,13 +57,15 @@ class CProcess(CBase, Process):
         self._internal_logger, self._internal_log_handler = self.create_new_logger(
             f"(cmp) {self.name}",
             logger_handler=logging.handlers.QueueHandler(self.state_queue))
+        self.internal_log_enabled = self._internal_log_enabled_
+        self.internal_log_level = self._internal_log_level_
+
 
         self.logger, self.logger_handler = self.create_new_logger(f"{os.getpid()}({self.__class__.__name__})",
                                                                   logger_handler=logging.handlers.QueueHandler(
                                                                       self.state_queue))
 
-        self.internal_log_enabled = self._internal_log_enabled_
-        self.internal_log_level = self._internal_log_level_
+
 
         self._internal_logger.debug(f"Child process {self.__class__.__name__} started.")
 
@@ -106,7 +106,7 @@ class CProcess(CBase, Process):
         self._internal_logger.debug(f"Child process monitor {self.__class__.__name__} ended.")
 
     def __del__(self):
-        print(f"Child process {self.name} deleted.")
+        #self.logger.warning(f"Child process {self.name} deleted.")
         self.cmd_queue.close()
         self.state_queue.close()
 
@@ -127,6 +127,8 @@ class CProcess(CBase, Process):
         self.state_queue.put(result)
 
 
+
+
     @staticmethod
     def register_signal(postfix=None, signal_name: str = None):
         _postfix = postfix.strip() if postfix is not None else None
@@ -161,6 +163,14 @@ class CProcess(CBase, Process):
 
         return register
 
+    @register_signal()
+    def set_internal_log_level(self, level):
+        self.internal_log_level = level
+
+    @register_signal()
+    def set_internal_log_enabled(self, enabled):
+        self.internal_log_enabled = enabled
+
     @staticmethod
     def setter(signal_same: str = None):
         def register(func):
diff --git a/src/cmp/CProcessControl.py b/src/cmp/CProcessControl.py
index b2da7c231fe9ec7a2527e4ac9cbc034de27cb48c..1733ebc0215291d556bb7e9dc5115def10e637fe 100644
--- a/src/cmp/CProcessControl.py
+++ b/src/cmp/CProcessControl.py
@@ -20,8 +20,8 @@ from cmp.CBase import CBase
 
 
 class CProcessControl(CBase, QObject):
-
     on_exception_raised = Signal(object, name='on_exception_raised')
+
     def __init__(self, parent: QObject = None,
                  signal_class: QObject = None,
                  internal_log: bool = False,
@@ -46,7 +46,6 @@ class CProcessControl(CBase, QObject):
         self.cmd_queue = Queue()
         self.state_queue = Queue()
 
-
         # Thread manager for monitoring the state queue
         self.thread_manager = QThreadPool()
 
@@ -61,11 +60,11 @@ class CProcessControl(CBase, QObject):
         self._internal_logger, self._internal_log_handler = self.create_new_logger(f"(cmp) {self.name}")
         self.internal_log_enabled = internal_log
         self.internal_log_level = internal_log_level
-
         self.logger, self.logger_handler = self.create_new_logger(f"{self.__class__.__name__}({os.getpid()})")
 
         self.on_exception_raised.connect(self.display_exception)
         self.msg_box = QMessageBox()
+
     # ==================================================================================================================
     #
     # ==================================================================================================================
@@ -90,6 +89,8 @@ class CProcessControl(CBase, QObject):
         self._internal_logger.debug(f"Child process {self._child.name} created.")
         self.thread_manager.start(self._monitor_result_state)
 
+
+
     @property
     def child(self):
         return self._child
@@ -141,12 +142,11 @@ class CProcessControl(CBase, QObject):
             self.msg_box.setDetailedText(e.traceback_short())
             self.msg_box.setStandardButtons(QMessageBox.Ok)
             self.msg_box.show()
-            self._internal_logger.error(f"Error executing {e.function_name} in {e.parent_name}: {e.exception}\n"
-                                        f"{e.traceback()}")
+            self.logger.error(f"Error executing {e.function_name} in {e.parent_name}: {e.exception}\n"
+                              f"{e.traceback()}")
         except Exception as e:
             self._internal_logger.error(f"Error while displaying exception: {e}")
 
-
     def execute_function(self, func: callable, signal: Signal = None):
         self.register_function(signal)(func)(self)
 
@@ -168,7 +168,7 @@ class CProcessControl(CBase, QObject):
                 args = match.group(2).split(',')
                 return name, args
 
-            def get_signature(self: CProcessControl, *args, **kwargs):
+            def get_signature(self, *args, **kwargs):
 
                 arguments = locals().copy()
                 arguments.pop("func")
@@ -205,6 +205,14 @@ class CProcessControl(CBase, QObject):
 
         return register
 
+    @register_function()
+    def set_internal_log_level(self, level):
+        self.internal_log_level = level
+
+    @register_function()
+    def set_internal_log_enabled(self, enabled):
+        self.internal_log_enabled = enabled
+
     def safe_exit(self, reason: str = ""):
         self._internal_logger.warning(f"Shutting down ProcessControl {os.getpid()}. Reason: {reason}")
         self._child_kill_flag.value = 0