Skip to content

Commit 9e16ee2

Browse files
authored
Added ability to see redirected output. (#54)
Signed-off-by: Pavel Kirilin <[email protected]>
1 parent 12ca432 commit 9e16ee2

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

taskiq/cli/worker/log_collector.py

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,23 @@
11
import logging
22
import sys
33
from contextlib import contextmanager
4-
from typing import Generator, List, TextIO
4+
from typing import IO, Any, Generator, List, TextIO
5+
6+
7+
class Redirector:
8+
"""A class to write to multiple streams."""
9+
10+
def __init__(self, *streams: IO[Any]) -> None:
11+
self.streams = streams
12+
13+
def write(self, message: Any) -> None:
14+
"""
15+
This write request writes to all avaialble streams.
16+
17+
:param message: message to write.
18+
"""
19+
for stream in self.streams:
20+
stream.write(message)
521

622

723
@contextmanager
@@ -36,8 +52,8 @@ def log_collector(
3652

3753
old_targets.extend([sys.stdout, sys.stderr])
3854
logging.root.addHandler(log_handler)
39-
sys.stdout = new_target
40-
sys.stderr = new_target
55+
sys.stdout = Redirector(new_target, sys.stdout) # type: ignore
56+
sys.stderr = Redirector(new_target, sys.stderr) # type: ignore
4157

4258
try:
4359
yield new_target

0 commit comments

Comments
 (0)