Atlas-Download-Tools
Atlas-Download-Tools copied to clipboard
Control the logging level in the CLI
trafficstars
Regarding tracebacks / debugging, there are for sure different options.
First of all, we already have a way because we added the __main__.py file. So now to debug some atldld <command> command one just needs to write python -m pdb -m atldld <command>. (I think one needs at least py37...)
And yes I've seen people using CLI flags to control the debug output. One could add something like --debug, --log-level, -v/-vv/-vvv directly to the root atldld command. For logging it would then configure the logging accordingly:
import logging
logger = logging.getLogger(__name__)
@click.group()
@click.option('-v', '--verbose', count=True)
def root(verbose):
"""Run the command line interface for Atlas-Download-Tools."""
if verbose == 0:
log_level = logging.WARNING
elif verbose == 1:
log_level = logging.INFO
else: # verbose >= 2:
log_level = logging.DEBUG
logging.basicConfig(level=log_level)
if verbose > 2:
logger.warning("The maximal verbosity is -vv")
@root.command("test")
def test():
logger.critical("Critical")
logger.error("Error")
logger.warning("Warning")
logger.info("Info")
logger.debug("Debug")
$ atldld test
CRITICAL:atldld.cli:Critical
ERROR:atldld.cli:Error
WARNING:atldld.cli:Warning
$ atldld -v test
CRITICAL:atldld.cli:Critical
ERROR:atldld.cli:Error
WARNING:atldld.cli:Warning
INFO:atldld.cli:Info
$ atldld -vv test
CRITICAL:atldld.cli:Critical
ERROR:atldld.cli:Error
WARNING:atldld.cli:Warning
INFO:atldld.cli:Info
DEBUG:atldld.cli:Debug
$ atldld -vvv test
WARNING:atldld.cli:The maximal verbosity is -vv
CRITICAL:atldld.cli:Critical
ERROR:atldld.cli:Error
WARNING:atldld.cli:Warning
INFO:atldld.cli:Info
DEBUG:atldld.cli:Debug
Originally posted by @Stannislav in https://github.com/BlueBrain/Atlas-Download-Tools/pull/66#discussion_r698353401