aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mitmproxy/addons/termlog.py8
-rw-r--r--test/mitmproxy/addons/test_termlog.py16
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