blob: f09aa4b4126149ba27756fdb91a72a1dfa19d47a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
import sys
import click
from mitmproxy import log
from mitmproxy import ctx
# These get over-ridden by the save execution context. Keep them around so we
# can log directly.
realstdout = sys.stdout
realstderr = sys.stderr
class TermLog:
def __init__(self, outfile=None):
self.outfile = outfile
def load(self, loader):
loader.add_option(
"termlog_verbosity", str, 'info',
"Log verbosity.",
choices=log.LogTierOrder
)
def log(self, e):
if log.log_tier(e.level) == log.log_tier("error"):
outfile = self.outfile or realstderr
else:
outfile = self.outfile or realstdout
if log.log_tier(ctx.options.termlog_verbosity) >= log.log_tier(e.level):
click.secho(
e.msg,
file=outfile,
fg=dict(error="red", warn="yellow",
alert="magenta").get(e.level),
dim=(e.level == "debug"),
err=(e.level == "error")
)
|