#!/usr/bin/env python3 # Eryn Wells ''' Logging for my shells. ''' import argparse import logging import os.path import sys LOGFILE = os.path.expanduser('~/.shell.log') 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=0) 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() # TODO: Set formatter correctly. logger.addHandler(stdout_handler) file_handler = logging.FileHandler(args.file) logger.addHandler(file_handler) return logger def main(): # Set up. args = parse_args() log = logger() # Set the level from the shell. level = sys.environ.get('NOISY', logging.INFO) log.setLevel(level) # Log it. log.log(args.level, args.msg, *args.args) if __name__ == '__main__': main()