From 2e9a34faa9fc8b0123375f220d785ebf2a10e716 Mon Sep 17 00:00:00 2001 From: Jessica Favin Date: Thu, 1 Nov 2018 19:53:37 +0100 Subject: Display errors on sys.stderr --- mitmproxy/addons/dumper.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/mitmproxy/addons/dumper.py b/mitmproxy/addons/dumper.py index 87f45976..4b2357f8 100644 --- a/mitmproxy/addons/dumper.py +++ b/mitmproxy/addons/dumper.py @@ -27,9 +27,10 @@ def colorful(line, styles): class Dumper: - def __init__(self, outfile=sys.stdout): + def __init__(self, outfile=sys.stdout, errfile=sys.stderr): self.filter: flowfilter.TFilter = None self.outfp: typing.io.TextIO = outfile + self.errfp: typing.io.TextIO = errfile def load(self, loader): loader.add_option( @@ -70,6 +71,13 @@ class Dumper: if self.outfp: self.outfp.flush() + def echo_error(self, text, ident=None, **style): + if ident: + text = indent(ident, text) + click.secho(text, file=self.errfp, **style) + if self.errfp: + self.errfp.flush() + def _echo_headers(self, headers): for k, v in headers.fields: k = strutils.bytes_to_escaped_str(k) @@ -243,7 +251,7 @@ class Dumper: self.echo_flow(f) def websocket_error(self, f): - self.echo( + self.echo_error( "Error in WebSocket connection to {}: {}".format( human.format_address(f.server_conn.address), f.error ), @@ -268,7 +276,7 @@ class Dumper: f.close_reason)) def tcp_error(self, f): - self.echo( + self.echo_error( "Error in TCP connection to {}: {}".format( human.format_address(f.server_conn.address), f.error ), -- cgit v1.2.3