Skip to content

Commit ecb4a74

Browse files
committed
logger: Save original stdout/stderr
1 parent 3969f56 commit ecb4a74

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

src/classes/logger.py

+9-1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434

3535
# Dictionary of logging handlers we create, keyed by type
3636
handlers = {}
37+
# Another dictionary of streams we've redirected (stdout, stderr)
38+
streams = {}
3739

3840

3941
class StreamToLogger(object):
@@ -79,9 +81,14 @@ def errors(self):
7981
def reroute_output():
8082
"""Route stdout and stderr to logger (custom handler)"""
8183
if not getattr(sys, 'frozen', False):
84+
# Hang on to the original objects
85+
streams.update({
86+
'stderr': sys.stderr,
87+
'stdout': sys.stdout,
88+
})
89+
# Re-route output streams
8290
handlers['stdout'] = StreamToLogger(log, logging.INFO)
8391
sys.stdout = handlers['stdout']
84-
8592
handlers['stderr'] = StreamToLogger(log, logging.ERROR)
8693
sys.stderr = handlers['stderr']
8794

@@ -92,3 +99,4 @@ def set_level_file(level=logging.INFO):
9299

93100
def set_level_console(level=logging.INFO):
94101
handlers['stream'].setLevel(level)
102+

0 commit comments

Comments
 (0)