From d1a4c462fbc16bc5b08b9c2aa3840f5eb8729a95 Mon Sep 17 00:00:00 2001 From: Orochi Date: Thu, 19 Feb 2026 23:37:52 +0700 Subject: [PATCH 1/3] Fix logging.info and other state transitions in LoggingMachine. Resolved issue #1836 by explicitly setting logger level and using methods for transitions to ensure state consistency. --- bittensor/utils/btlogging/loggingmachine.py | 22 +++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/bittensor/utils/btlogging/loggingmachine.py b/bittensor/utils/btlogging/loggingmachine.py index 0feacf4f93..f72b9c591c 100644 --- a/bittensor/utils/btlogging/loggingmachine.py +++ b/bittensor/utils/btlogging/loggingmachine.py @@ -120,13 +120,21 @@ class LoggingMachine(StateMachine, Logger): | Info.to(Warning) ) - disable_trace = Trace.to(Default) + def disable_trace(self): + """Disables trace logging by transitioning back to Default.""" + self.enable_default() - disable_debug = Debug.to(Default) + def disable_debug(self): + """Disables debug logging by transitioning back to Default.""" + self.enable_default() - disable_warning = Warning.to(Default) + def disable_warning(self): + """Disables warning logging by transitioning back to Default.""" + self.enable_default() - disable_info = Info.to(Default) + def disable_info(self): + """Disables info logging by transitioning back to Default.""" + self.enable_default() disable_logging = ( Trace.to(Disabled) @@ -405,6 +413,7 @@ def before_enable_default(self): """Logs status before enable Default.""" self._logger.info("Enabling default logging (Warning level)") self._logger.setLevel(stdlogging.WARNING) + self._stream_formatter.set_trace(False) for logger in all_loggers(): if logger.name in self._primary_loggers: continue @@ -417,6 +426,7 @@ def after_enable_default(self): def before_enable_warning(self): """Logs status before enable Warning.""" self._logger.info("Enabling warning.") + self._logger.setLevel(stdlogging.WARNING) self._stream_formatter.set_trace(True) for logger in all_loggers(): logger.setLevel(stdlogging.WARNING) @@ -430,6 +440,7 @@ def before_enable_info(self): """Logs status before enable info.""" self._logger.info("Enabling info logging.") self._logger.setLevel(stdlogging.INFO) + self._stream_formatter.set_trace(True) for logger in all_loggers(): if logger.name in self._primary_loggers: continue @@ -443,6 +454,7 @@ def after_enable_info(self): def before_enable_trace(self): """Logs status before enable Trace.""" self._logger.info("Enabling trace.") + self._logger.setLevel(stdlogging.TRACE) self._stream_formatter.set_trace(True) for logger in all_loggers(): logger.setLevel(stdlogging.TRACE) @@ -465,12 +477,14 @@ def after_disable_trace(self): def before_enable_debug(self): """Logs status before enable Debug.""" self._logger.info("Enabling debug.") + self._logger.setLevel(stdlogging.DEBUG) self._stream_formatter.set_trace(True) for logger in all_loggers(): logger.setLevel(stdlogging.DEBUG) def before_enable_console(self): """Logs status before enable Console.""" + self._logger.setLevel(stdlogging.DEBUG) self._stream_formatter.set_trace(True) for logger in all_loggers(): logger.setLevel(stdlogging.DEBUG) From 330fa0220f5b9b6e01d1498b674010af8d55e8e0 Mon Sep 17 00:00:00 2001 From: ionodeionode Date: Thu, 5 Mar 2026 19:37:50 +0700 Subject: [PATCH 2/3] fix: add set_trace(False) in before_enable_default to reset formatter state (scoped down) --- bittensor/utils/btlogging/loggingmachine.py | 23 +++++---------------- 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/bittensor/utils/btlogging/loggingmachine.py b/bittensor/utils/btlogging/loggingmachine.py index f72b9c591c..63955f4b82 100644 --- a/bittensor/utils/btlogging/loggingmachine.py +++ b/bittensor/utils/btlogging/loggingmachine.py @@ -120,21 +120,13 @@ class LoggingMachine(StateMachine, Logger): | Info.to(Warning) ) - def disable_trace(self): - """Disables trace logging by transitioning back to Default.""" - self.enable_default() + disable_trace = Trace.to(Default) - def disable_debug(self): - """Disables debug logging by transitioning back to Default.""" - self.enable_default() + disable_debug = Debug.to(Default) - def disable_warning(self): - """Disables warning logging by transitioning back to Default.""" - self.enable_default() + disable_warning = Warning.to(Default) - def disable_info(self): - """Disables info logging by transitioning back to Default.""" - self.enable_default() + disable_info = Info.to(Default) disable_logging = ( Trace.to(Disabled) @@ -410,10 +402,10 @@ def after_transition(self, event, state): # Default Logging def before_enable_default(self): + self.set_trace(False) """Logs status before enable Default.""" self._logger.info("Enabling default logging (Warning level)") self._logger.setLevel(stdlogging.WARNING) - self._stream_formatter.set_trace(False) for logger in all_loggers(): if logger.name in self._primary_loggers: continue @@ -426,7 +418,6 @@ def after_enable_default(self): def before_enable_warning(self): """Logs status before enable Warning.""" self._logger.info("Enabling warning.") - self._logger.setLevel(stdlogging.WARNING) self._stream_formatter.set_trace(True) for logger in all_loggers(): logger.setLevel(stdlogging.WARNING) @@ -440,7 +431,6 @@ def before_enable_info(self): """Logs status before enable info.""" self._logger.info("Enabling info logging.") self._logger.setLevel(stdlogging.INFO) - self._stream_formatter.set_trace(True) for logger in all_loggers(): if logger.name in self._primary_loggers: continue @@ -454,7 +444,6 @@ def after_enable_info(self): def before_enable_trace(self): """Logs status before enable Trace.""" self._logger.info("Enabling trace.") - self._logger.setLevel(stdlogging.TRACE) self._stream_formatter.set_trace(True) for logger in all_loggers(): logger.setLevel(stdlogging.TRACE) @@ -477,14 +466,12 @@ def after_disable_trace(self): def before_enable_debug(self): """Logs status before enable Debug.""" self._logger.info("Enabling debug.") - self._logger.setLevel(stdlogging.DEBUG) self._stream_formatter.set_trace(True) for logger in all_loggers(): logger.setLevel(stdlogging.DEBUG) def before_enable_console(self): """Logs status before enable Console.""" - self._logger.setLevel(stdlogging.DEBUG) self._stream_formatter.set_trace(True) for logger in all_loggers(): logger.setLevel(stdlogging.DEBUG) From 58c07e7821515f21dfb7dd6d8ea5493fe8c7832a Mon Sep 17 00:00:00 2001 From: ionodeionode Date: Fri, 6 Mar 2026 12:45:39 +0700 Subject: [PATCH 3/3] fix: correct indentation and formatting for set_trace(False) --- bittensor/utils/btlogging/loggingmachine.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bittensor/utils/btlogging/loggingmachine.py b/bittensor/utils/btlogging/loggingmachine.py index 63955f4b82..1575bd745c 100644 --- a/bittensor/utils/btlogging/loggingmachine.py +++ b/bittensor/utils/btlogging/loggingmachine.py @@ -402,7 +402,7 @@ def after_transition(self, event, state): # Default Logging def before_enable_default(self): - self.set_trace(False) + self.set_trace(False) """Logs status before enable Default.""" self._logger.info("Enabling default logging (Warning level)") self._logger.setLevel(stdlogging.WARNING)