diff --git a/inventory_provider/environment.py b/inventory_provider/environment.py index ad4bcadcf93f39e75e403fab6fd2545ff46284d9..3e9396e79cfcd43cc77b9a4f6da315d356394c50 100644 --- a/inventory_provider/environment.py +++ b/inventory_provider/environment.py @@ -1,26 +1,18 @@ -import logging +import json +import logging.config import os -import sys -from inventory_provider import constants - - -def _level_from_env(var_name, default_level=logging.INFO): - level_str = os.getenv(var_name, logging.getLevelName(default_level)) - numeric_level = getattr(logging, level_str.upper(), default_level) - logging.debug('setting %s logging level to %s' - % (var_name, logging.getLevelName(numeric_level))) - return numeric_level def setup_logging(): - logging.basicConfig( - stream=sys.stderr, - level=_level_from_env('DEFAULT_LOGGING', logging.INFO)) - logging.getLogger(constants.SNMP_LOGGER_NAME).setLevel( - _level_from_env('SNMP_LOGGING', logging.INFO)) - logging.getLogger(constants.TASK_LOGGER_NAME).setLevel( - _level_from_env('TASK_LOGGING', logging.INFO)) - logging.getLogger(constants.JUNIPER_LOGGER_NAME).setLevel( - _level_from_env('JUNIPER_LOGGING', logging.INFO)) - logging.getLogger(constants.DATABASE_LOGGER_NAME).setLevel( - _level_from_env('DATABASE_LOGGING', logging.INFO)) + """ + set up logging using the configured filename + + if LOGGING_CONFIG is defined in the environment, use this for + the filename, otherwise use logging_default_config.json + """ + default_filename = os.path.join( + os.path.dirname(__file__), + 'logging_default_config.json') + filename = os.getenv('LOGGING_CONFIG', default_filename) + with open(filename) as f: + logging.config.dictConfig(json.loads(f.read()))