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