@@ -69,26 +69,48 @@ class LoggingMachine(StateMachine, Logger):
69
69
Debug = State ()
70
70
Trace = State ()
71
71
Disabled = State ()
72
+ Warning = State ()
72
73
73
74
enable_default = (
74
75
Debug .to (Default )
75
76
| Trace .to (Default )
76
77
| Disabled .to (Default )
77
78
| Default .to (Default )
79
+ | Warning .to (Default )
78
80
)
79
81
82
+ enable_info = enable_default
83
+
80
84
enable_trace = (
81
- Default .to (Trace ) | Debug .to (Trace ) | Disabled .to (Trace ) | Trace .to (Trace )
85
+ Default .to (Trace )
86
+ | Debug .to (Trace )
87
+ | Disabled .to (Trace )
88
+ | Trace .to (Trace )
89
+ | Warning .to (Trace )
82
90
)
83
91
84
92
enable_debug = (
85
- Default .to (Debug ) | Trace .to (Debug ) | Disabled .to (Debug ) | Debug .to (Debug )
93
+ Default .to (Debug )
94
+ | Trace .to (Debug )
95
+ | Disabled .to (Debug )
96
+ | Debug .to (Debug )
97
+ | Warning .to (Debug )
98
+ )
99
+
100
+ enable_warning = (
101
+ Default .to (Warning )
102
+ | Trace .to (Warning )
103
+ | Disabled .to (Warning )
104
+ | Debug .to (Warning )
105
+ | Warning .to (Warning )
86
106
)
87
107
88
108
disable_trace = Trace .to (Default )
89
109
90
110
disable_debug = Debug .to (Default )
91
111
112
+ disable_warning = Warning .to (Default )
113
+
92
114
disable_logging = (
93
115
Trace .to (Disabled )
94
116
| Debug .to (Disabled )
@@ -301,16 +323,36 @@ def after_transition(self, event, state):
301
323
# Default Logging
302
324
def before_enable_default (self ):
303
325
"""Logs status before enable Default."""
304
- self ._logger .info (f "Enabling default logging." )
326
+ self ._logger .info ("Enabling default logging." )
305
327
self ._logger .setLevel (stdlogging .WARNING )
306
328
for logger in all_loggers ():
307
329
if logger .name in self ._primary_loggers :
308
330
continue
309
331
logger .setLevel (stdlogging .CRITICAL )
310
332
333
+ def before_enable_info (self ):
334
+ """Logs status before enable Default."""
335
+ self ._logger .info ("Enabling default logging." )
336
+ self ._logger .setLevel (stdlogging .INFO )
337
+ for logger in all_loggers ():
338
+ if logger .name in self ._primary_loggers :
339
+ continue
340
+ logger .setLevel (stdlogging .CRITICAL )
341
+
311
342
def after_enable_default (self ):
312
343
pass
313
344
345
+ def before_enable_warning (self ):
346
+ """Logs status before enable Warning."""
347
+ self ._logger .info ("Enabling warning." )
348
+ self ._stream_formatter .set_trace (True )
349
+ for logger in all_loggers ():
350
+ logger .setLevel (stdlogging .WARNING )
351
+
352
+ def after_enable_warning (self ):
353
+ """Logs status after enable Warning."""
354
+ self ._logger .info ("Warning enabled." )
355
+
314
356
# Trace
315
357
def before_enable_trace (self ):
316
358
"""Logs status before enable Trace."""
@@ -325,7 +367,7 @@ def after_enable_trace(self):
325
367
326
368
def before_disable_trace (self ):
327
369
"""Logs status before disable Trace."""
328
- self ._logger .info (f "Disabling trace." )
370
+ self ._logger .info ("Disabling trace." )
329
371
self ._stream_formatter .set_trace (False )
330
372
self .enable_default ()
331
373
@@ -449,6 +491,25 @@ def set_trace(self, on: bool = True):
449
491
if self .current_state_value == "Trace" :
450
492
self .disable_trace ()
451
493
494
+ def set_warning (self , on : bool = True ):
495
+ """Sets Warning state."""
496
+ if on and not self .current_state_value == "Warning" :
497
+ self .enable_warning ()
498
+ elif not on :
499
+ if self .current_state_value == "Warning" :
500
+ self .disable_warning ()
501
+
502
+ def set_default (self ):
503
+ """Sets Default state."""
504
+ if not self .current_state_value == "Default" :
505
+ self .enable_default ()
506
+
507
+ # as an option to be more obvious. `bittensor.logging.set_info()` is the same `bittensor.logging.set_default()`
508
+ def set_info (self ):
509
+ """Sets Default state."""
510
+ if not self .current_state_value == "Default" :
511
+ self .enable_info ()
512
+
452
513
def get_level (self ) -> int :
453
514
"""Returns Logging level."""
454
515
return self ._logger .level
0 commit comments