Browse Source

Add --logging-config command line option

pull/945/head
Ross McFarland 3 years ago
parent
commit
cadeada955
No known key found for this signature in database GPG Key ID: 943B179E15D3B22A
1 changed files with 13 additions and 0 deletions
  1. +13
    -0
      octodns/cmds/args.py

+ 13
- 0
octodns/cmds/args.py View File

@ -4,8 +4,10 @@
from argparse import ArgumentParser as _Base
from logging import DEBUG, INFO, WARNING, Formatter, StreamHandler, getLogger
from logging.config import dictConfig
from logging.handlers import SysLogHandler
from sys import stderr, stdout
from yaml import safe_load
from octodns import __VERSION__
@ -55,11 +57,22 @@ class ArgumentParser(_Base):
'--quiet', action='store_true', default=False, help=_help
)
_help = 'Configure logging with a YAML file, see https://docs.python.org/3/library/logging.config.html#logging-config-dictschema for schema details'
self.add_argument('--logging-config', default=False, help=_help)
args = super().parse_args()
self._setup_logging(args, default_log_level)
return args
def _setup_logging(self, args, default_log_level):
if args.logging_config:
with open(args.logging_config) as fh:
config = safe_load(fh.read())
dictConfig(config)
# if we're provided a logging_config we won't do any of our normal
# configuration
return
fmt = '%(asctime)s [%(thread)d] %(levelname)-5s %(name)s %(message)s'
formatter = Formatter(fmt=fmt, datefmt='%Y-%m-%dT%H:%M:%S ')
stream = stdout if args.log_stream_stdout else stderr


Loading…
Cancel
Save