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