Add subscription and notification for resource changes; fix a bug while pserver node...
[pti/o2.git] / mock_smo / mock_smo / logging.py
diff --git a/mock_smo/mock_smo/logging.py b/mock_smo/mock_smo/logging.py
new file mode 100644 (file)
index 0000000..cb3b504
--- /dev/null
@@ -0,0 +1,36 @@
+# Copyright (C) 2021 Wind River Systems, Inc.\r
+#\r
+#  Licensed under the Apache License, Version 2.0 (the "License");\r
+#  you may not use this file except in compliance with the License.\r
+#  You may obtain a copy of the License at\r
+#\r
+#      http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+#  Unless required by applicable law or agreed to in writing, software\r
+#  distributed under the License is distributed on an "AS IS" BASIS,\r
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+#  See the License for the specific language governing permissions and\r
+#  limitations under the License.\r
+\r
+import logging\r
+import logging.config\r
+import logging.handlers\r
+import os\r
+import yaml\r
+\r
+\r
+def get_logger(name=None):\r
+    CONFIG_FILE = os.environ.get(\r
+        "LOGGING_CONFIG_FILE", "/etc/mock_smo/log.yaml")\r
+    if os.path.exists(CONFIG_FILE):\r
+        with open(file=CONFIG_FILE, mode='r', encoding="utf-8") as file:\r
+            config_yaml = yaml.load(stream=file, Loader=yaml.FullLoader)\r
+        logging.config.dictConfig(config=config_yaml)\r
+\r
+    logger = logging.getLogger(name)\r
+\r
+    # override logging level\r
+    LOGGING_CONFIG_LEVEL = os.environ.get("LOGGING_CONFIG_LEVEL", None)\r
+    if LOGGING_CONFIG_LEVEL:\r
+        logger.setLevel(LOGGING_CONFIG_LEVEL)\r
+    return logger\r