diff --git a/pidcat.py b/pidcat.py index 7a39aa8..0937e82 100755 --- a/pidcat.py +++ b/pidcat.py @@ -28,12 +28,17 @@ import re import subprocess from subprocess import PIPE + +LOG_LEVELS = ['V','D','I','W','E'] +LOG_LEVELS_MAP = dict([(LOG_LEVELS[i], i) for i in range(len(LOG_LEVELS))]) parser = argparse.ArgumentParser(description='Filter logcat by package name') parser.add_argument('package', nargs='+', help='Application package name(s)') -parser.add_argument('--tag-width', metavar='N', dest='tag_width', type=int, default=22, help='Width of log tag') +parser.add_argument('-w', '--tag-width', metavar='N', dest='tag_width', type=int, default=22, help='Width of log tag') +parser.add_argument('-l', '--min-level', dest='min_level', type=str, choices=LOG_LEVELS, default='V', help='Minimum level to be displayed') parser.add_argument('--color-gc', dest='color_gc', action='store_true', help='Color garbage collection') args = parser.parse_args() +min_level=LOG_LEVELS_MAP[args.min_level] header_size = args.tag_width + 1 + 3 + 1 # space, level, space @@ -201,6 +206,8 @@ while adb.poll() is None: if owner not in pids: continue + if LOG_LEVELS_MAP[level] < min_level: + continue linebuf = ''