mirror of
https://github.com/clearml/clearml
synced 2025-06-26 18:16:07 +00:00
Disconnect stdout/stderr logger on exit
This commit is contained in:
@@ -77,17 +77,17 @@ class StdStreamPatch(object):
|
||||
StdStreamPatch._stderr_proxy.connect(logger)
|
||||
|
||||
@staticmethod
|
||||
def remove_std_logger():
|
||||
def remove_std_logger(logger=None):
|
||||
if isinstance(sys.stdout, PrintPatchLogger):
|
||||
# noinspection PyBroadException
|
||||
try:
|
||||
sys.stdout.connect(None)
|
||||
sys.stdout.disconnect(logger)
|
||||
except Exception:
|
||||
pass
|
||||
if isinstance(sys.stderr, PrintPatchLogger):
|
||||
# noinspection PyBroadException
|
||||
try:
|
||||
sys.stderr.connect(None)
|
||||
sys.stderr.disconnect(logger)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
@@ -172,6 +172,11 @@ class PrintPatchLogger(object):
|
||||
self._cur_line = ''
|
||||
self._log = logger
|
||||
|
||||
def disconnect(self, logger=None):
|
||||
# disconnect the logger only if it was registered
|
||||
if not logger or self._log == logger:
|
||||
self.connect(None)
|
||||
|
||||
def __getattr__(self, attr):
|
||||
if attr in ['_log', '_terminal', '_log_level', '_cur_line']:
|
||||
return self.__dict__.get(attr)
|
||||
|
||||
Reference in New Issue
Block a user