1
0
mirror of https://github.com/github/octodns.git synced 2024-05-11 05:55:00 +00:00

--debug flag to commands, work-around to ensure PlanLogger plan always prints

This commit is contained in:
Ross McFarland
2022-09-27 08:06:30 -07:00
parent e734b64355
commit 3967c273f8
2 changed files with 26 additions and 2 deletions

View File

@@ -50,6 +50,11 @@ class ArgumentParser(_Base):
'--debug', action='store_true', default=False, help=_help
)
_help = 'Decrease verbosity to show only warnings, errors, and the plan'
self.add_argument(
'--quiet', action='store_true', default=False, help=_help
)
args = super().parse_args()
self._setup_logging(args, default_log_level)
return args
@@ -74,7 +79,11 @@ class ArgumentParser(_Base):
handler.setFormatter(Formatter(fmt=fmt))
logger.addHandler(handler)
logger.level = DEBUG if args.debug else default_log_level
logger.level = default_log_level
if args.debug:
logger.level = DEBUG
elif args.quiet:
logger.level = WARNING
# boto is noisy, set it to warn
getLogger('botocore').level = WARNING

View File

@@ -134,6 +134,19 @@ class _PlanOutput(object):
self.name = name
class _LogLevelSetter:
def __init__(self, logger, level):
self.logger = getLogger()
self.level = level
def __enter__(self, *args, **kwargs):
self.original_level = self.logger.level
self.logger.setLevel(self.level)
def __exit__(self, *args, **kwargs):
self.logger.setLevel(self.original_level)
class PlanLogger(_PlanOutput):
def __init__(self, name, level='info'):
super().__init__(name)
@@ -189,7 +202,9 @@ class PlanLogger(_PlanOutput):
buf.write('No changes were planned\n')
buf.write(hr)
buf.write('\n')
log.log(self.level, buf.getvalue())
with _LogLevelSetter(log, INFO):
log.log(self.level, buf.getvalue())
def _value_stringifier(record, sep):