#!/usr/bin/env python3 # Eryn Wells ''' Logging for my shells. ''' import argparse import logging import os import os.path _LOGFILE = os.path.expanduser('~/.shell.log') _LOGGER = None def parse_args(): parser = argparse.ArgumentParser() parser.add_argument('-b', '--bold', action='store_true') parser.add_argument('-f', '--file', default=LOGFILE) parser.add_argument('-l', '--level', type=int, default=logging.INFO) parser.add_argument('-n', '--noeol', action='store_true') parser.add_argument('msg') parser.add_argument('args', nargs=argparse.REMAINDER) args = parser.parse_args() return args def logger(args): logger = logging.getLogger('') stdout_handler = logging.StreamHandler() formatter = logging.Formatter('\033[34m==>\033[39m {msg}', style='{') stdout_handler.setFormatter(formatter) logger.addHandler(stdout_handler) return logger def main(): # Set up. args = parse_args() log = logger(args) # Set the level from the shell. level = int(os.environ.get('NOISY', logging.INFO)) log.setLevel(level) # Log it. log.log(args.level, args.msg, *args.args) if __name__ == '__main__': main()