diff options
-rw-r--r-- | mitmproxy/addons/termlog.py | 8 | ||||
-rw-r--r-- | test/mitmproxy/addons/test_termlog.py | 16 |
2 files changed, 17 insertions, 7 deletions
diff --git a/mitmproxy/addons/termlog.py b/mitmproxy/addons/termlog.py index f7739efe..8ee366cd 100644 --- a/mitmproxy/addons/termlog.py +++ b/mitmproxy/addons/termlog.py @@ -13,6 +13,14 @@ class TermLog: self.options = options def log(self, e): + def determine_outfile(): + if log.log_tier(e.level) == log.log_tier("error"): + self.outfile = sys.stderr + else: + self.outfile = sys.stdout + + determine_outfile() + if self.options.verbosity >= log.log_tier(e.level): click.secho( e.msg, diff --git a/test/mitmproxy/addons/test_termlog.py b/test/mitmproxy/addons/test_termlog.py index d9e18134..9d49a8c0 100644 --- a/test/mitmproxy/addons/test_termlog.py +++ b/test/mitmproxy/addons/test_termlog.py @@ -1,16 +1,18 @@ -import io - from mitmproxy.addons import termlog from mitmproxy import log from mitmproxy.tools import dump class TestTermLog: - def test_simple(self): - sio = io.StringIO() - t = termlog.TermLog(outfile=sio) + def test_simple(self, capsys): + t = termlog.TermLog() t.configure(dump.Options(verbosity = 2), set([])) t.log(log.LogEntry("one", "info")) - assert "one" in sio.getvalue() t.log(log.LogEntry("two", "debug")) - assert "two" not in sio.getvalue() + t.log(log.LogEntry("three", "warn")) + t.log(log.LogEntry("four", "error")) + out, err = capsys.readouterr() + assert "one" in out + assert "two" not in out + assert "three" in out + assert "four" in err |