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:
@@ -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
|
||||
|
@@ -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):
|
||||
|
Reference in New Issue
Block a user