diff --git a/setup.py b/setup.py index c48fb80..0f200d6 100755 --- a/setup.py +++ b/setup.py @@ -16,6 +16,7 @@ 'python-dateutil>=2.7.3,==2.*', 'backoff>=2.2.1,==2.*', 'ciso8601>=2.3.1,==2.*', + 'importlib-resources>=1.3; python_version<"3.9"', ], extras_require={ 'dev': [ diff --git a/singer/logger.py b/singer/logger.py index 2113f22..16b9406 100644 --- a/singer/logger.py +++ b/singer/logger.py @@ -1,19 +1,24 @@ import logging import logging.config -import os +import sys + +if sys.version_info < (3, 9): + import importlib_resources +else: + from importlib import resources as importlib_resources def get_logger(): """Return a Logger instance appropriate for using in a Tap or a Target.""" - this_dir, _ = os.path.split(__file__) - path = os.path.join(this_dir, 'logging.conf') + path = importlib_resources.files(__package__).joinpath('logging.conf') # See # https://docs.python.org/3.5/library/logging.config.html#logging.config.fileConfig # for a discussion of why or why not to set disable_existing_loggers # to False. The long and short of it is that if you don't set it to # False it ruins external module's abilities to use the logging # facility. - logging.config.fileConfig(path, disable_existing_loggers=False) + with path.open() as f: + logging.config.fileConfig(f, disable_existing_loggers=False) return logging.getLogger()