A simple script
Usage: ./template_py_scripts.py -h
./template_py_scripts.py -v # To log INFO messages ./template_py_scripts.py -vv # To log DEBUG messages
import logging
from argparse import ArgumentParser, RawDescriptionHelpFormatter
def setup_logging(verbosity):
logging_level = logging.WARNING
if verbosity == 1:
logging_level = logging.INFO
elif verbosity >= 2:
logging_level = logging.DEBUG
logging.basicConfig(
handlers=[
logging.StreamHandler(),
],
format="%(asctime)s - %(filename)s:%(lineno)d - %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
level=logging_level,
)
logging.captureWarnings(capture=True)
def parse_args():
parser = ArgumentParser(description=__doc__, formatter_class=RawDescriptionHelpFormatter)
parser.add_argument(
"-v",
"--verbose",
action="count",
default=0,
dest="verbose",
help="Increase verbosity of logging output",
)
return parser.parse_args()
def main(args):
logging.debug(f"This is a debug log message: {args.verbose}")
logging.info(f"This is an info log message: {args.verbose}")
if __name__ == "__main__":
args = parse_args()
setup_logging(args.verbose)
main(args)