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

Add --logging-config command line option

This commit is contained in:
Ross McFarland
2022-09-29 14:29:32 -07:00
parent a1e54c2bbf
commit cadeada955

View File

@@ -4,8 +4,10 @@
from argparse import ArgumentParser as _Base from argparse import ArgumentParser as _Base
from logging import DEBUG, INFO, WARNING, Formatter, StreamHandler, getLogger from logging import DEBUG, INFO, WARNING, Formatter, StreamHandler, getLogger
from logging.config import dictConfig
from logging.handlers import SysLogHandler from logging.handlers import SysLogHandler
from sys import stderr, stdout from sys import stderr, stdout
from yaml import safe_load
from octodns import __VERSION__ from octodns import __VERSION__
@@ -55,11 +57,22 @@ class ArgumentParser(_Base):
'--quiet', action='store_true', default=False, help=_help '--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() args = super().parse_args()
self._setup_logging(args, default_log_level) self._setup_logging(args, default_log_level)
return args return args
def _setup_logging(self, args, default_log_level): 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' fmt = '%(asctime)s [%(thread)d] %(levelname)-5s %(name)s %(message)s'
formatter = Formatter(fmt=fmt, datefmt='%Y-%m-%dT%H:%M:%S ') formatter = Formatter(fmt=fmt, datefmt='%Y-%m-%dT%H:%M:%S ')
stream = stdout if args.log_stream_stdout else stderr stream = stdout if args.log_stream_stdout else stderr