INNER CODE UNIT · Python
logging_options
nolar/kopf · kopf/cli.py:32
def logging_options(fn: Callable[..., Any]) -> Callable[..., Any]:
""" A decorator to configure logging in all commands the same way."""
@click.option('-v', '--verbose', is_flag=True)
@click.option('-d', '--debug', is_flag=True)
@click.option('-q', '--quiet', is_flag=True)
@click.option('--log-format', type=click.Choice(loggers.LogFormat, case_sensitive=False), default='full')
@click.option('--log-refkey', type=str)
@click.option('--log-prefix/--no-log-prefix', default=None)
@functools.wraps(fn) # to preserve other opts/args
def wrapper(verbose: bool, quiet: bool, debug: bool,
log_format: loggers.LogFormat = loggers.LogFormat.FULL,
log_prefix: bool | None = False,
log_refkey: str | None = None,
*args: Any, **kwargs: Any) -> Any:
loggers.configure(debug=debug, verbose=verbose, quiet=quiet,
log_format=log_format, log_refkey=log_refkey, log_prefix=log_prefix)
return fn(*args, **kwargs)