Source code for pyos.psh.cmds.log

# -*- coding: utf-8 -*-
"""Print working directory command"""
import argparse
import logging
from typing import Union

import cmd2


[docs]class Log(cmd2.CommandSet): parser = argparse.ArgumentParser() parser.add_argument('logger', help='the logger to set loglevel for, can be empty string for root') parser.add_argument('level', help='the log level to set') @cmd2.with_argparser(parser) def do_log(self, args): if isinstance(args.level, int): level = args.level else: level = logging.getLevelName(args.level) set_logging(args.logger, level) print(f"Log level for '{args.logger}' set to {args.level}")
def set_logging(logger: str, level: Union[int, str]): log = logging.getLogger(logger) log.setLevel(level) formatter = logging.Formatter('%(levelname)s: %(message)s') handler = logging.StreamHandler() handler.setLevel(level) handler.setFormatter(formatter) log.addHandler(handler)