Browse Source

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

pull/945/head
Ross McFarland 3 years ago
parent
commit
3967c273f8
No known key found for this signature in database GPG Key ID: 943B179E15D3B22A
2 changed files with 26 additions and 2 deletions
  1. +10
    -1
      octodns/cmds/args.py
  2. +16
    -1
      octodns/provider/plan.py

+ 10
- 1
octodns/cmds/args.py View File

@ -50,6 +50,11 @@ class ArgumentParser(_Base):
'--debug', action='store_true', default=False, help=_help '--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() args = super().parse_args()
self._setup_logging(args, default_log_level) self._setup_logging(args, default_log_level)
return args return args
@ -74,7 +79,11 @@ class ArgumentParser(_Base):
handler.setFormatter(Formatter(fmt=fmt)) handler.setFormatter(Formatter(fmt=fmt))
logger.addHandler(handler) 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 # boto is noisy, set it to warn
getLogger('botocore').level = WARNING getLogger('botocore').level = WARNING


+ 16
- 1
octodns/provider/plan.py View File

@ -134,6 +134,19 @@ class _PlanOutput(object):
self.name = name 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): class PlanLogger(_PlanOutput):
def __init__(self, name, level='info'): def __init__(self, name, level='info'):
super().__init__(name) super().__init__(name)
@ -189,7 +202,9 @@ class PlanLogger(_PlanOutput):
buf.write('No changes were planned\n') buf.write('No changes were planned\n')
buf.write(hr) buf.write(hr)
buf.write('\n') buf.write('\n')
log.log(self.level, buf.getvalue())
with _LogLevelSetter(log, INFO):
log.log(self.level, buf.getvalue())
def _value_stringifier(record, sep): def _value_stringifier(record, sep):


Loading…
Cancel
Save