From 3fe611d7388420998a067afe9143531839e213c6 Mon Sep 17 00:00:00 2001 From: Erik Reid <erik.reid@geant.org> Date: Fri, 8 Feb 2019 13:29:18 +0100 Subject: [PATCH] load logging config from file --- inventory_provider/environment.py | 36 ++++++++++++------------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/inventory_provider/environment.py b/inventory_provider/environment.py index ad4bcadc..3e9396e7 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())) -- GitLab