logger: add --quiet flag to disable non-error logging

This commit is contained in:
InsanePrawn 2023-01-06 02:19:12 +01:00
parent f140fa36ce
commit de7b597518
2 changed files with 13 additions and 4 deletions

View file

@ -6,10 +6,10 @@ import sys
from typing import Optional
def setup_logging(verbose: bool, force_colors: Optional[bool] = None, log_setup: bool = True):
def setup_logging(verbose: bool, quiet: bool = False, force_colors: Optional[bool] = None, log_setup: bool = True):
level_colors = coloredlogs.DEFAULT_LEVEL_STYLES | {'info': {'color': 'magenta', 'bright': True}, 'debug': {'color': 'blue', 'bright': True}}
field_colors = coloredlogs.DEFAULT_FIELD_STYLES | {'asctime': {'color': 'white', 'faint': True}}
level = logging.DEBUG if verbose else logging.INFO
level = logging.DEBUG if verbose and not quiet else (logging.INFO if not quiet else logging.ERROR)
coloredlogs.install(
stream=sys.stdout,
fmt='%(asctime)s %(levelname)s: %(message)s',
@ -34,6 +34,13 @@ verbose_option = click.option(
help='Enables verbose logging',
)
quiet_option = click.option(
'-q',
'--quiet',
is_flag=True,
help='Disable most logging, only log errors. (Currently only affects KBS logging, not called subprograms)',
)
color_option = click.option(
'--force-colors/--no-colors',
is_flag=True,

View file

@ -7,7 +7,7 @@ from os import isatty
from traceback import format_exc, format_exception_only, format_tb
from typing import Optional
from logger import color_option, logging, setup_logging, verbose_option
from logger import color_option, logging, quiet_option, setup_logging, verbose_option
from wrapper import nowrapper_option, enforce_wrap
from progressbar import progress_bars_option
@ -24,19 +24,21 @@ from image.cli import cmd_image
@click.group()
@click.option('--error-shell', '-E', 'error_shell', is_flag=True, default=False, help='Spawn shell after error occurs')
@verbose_option
@quiet_option
@config_option
@nowrapper_option
@color_option
@progress_bars_option
def cli(
verbose: bool = False,
quiet: bool = False,
config_file: Optional[str] = None,
wrapper_override: Optional[bool] = None,
error_shell: bool = False,
force_colors: Optional[bool] = None,
force_progress_bars: Optional[bool] = None,
):
setup_logging(verbose, force_colors=force_colors)
setup_logging(verbose, quiet=quiet, force_colors=force_colors)
# stdout is fd 1
config.runtime.colors = isatty(1) if force_colors is None else force_colors
config.runtime.verbose = verbose