summaryrefslogtreecommitdiffstats
path: root/starlingx
diff options
context:
space:
mode:
authorBin Yang <bin.yang@windriver.com>2021-08-19 13:11:03 +0800
committerBin Yang <bin.yang@windriver.com>2021-08-19 16:19:25 +0800
commitf96919ba694a1086f989074e1f5972ea5621eaf8 (patch)
tree4f4fda08538d709ea46fa28b29ad111a805dfee6 /starlingx
parentd389053df48d5fb142ab2264d4157fb32a8afab2 (diff)
Remove dependency to onaplog package
due to it is not supported python3.8 Issue-ID: MULTICLOUD-1382 Signed-off-by: Bin Yang <bin.yang@windriver.com> Change-Id: I616edd885070724aa4daea3a3220547e2108531e
Diffstat (limited to 'starlingx')
-rw-r--r--starlingx/requirements.txt3
-rw-r--r--starlingx/starlingx/middleware.py64
-rw-r--r--starlingx/starlingx/pub/config/log.yml13
-rw-r--r--starlingx/starlingx/settings.py52
4 files changed, 47 insertions, 85 deletions
diff --git a/starlingx/requirements.txt b/starlingx/requirements.txt
index e92acdad..3623b817 100644
--- a/starlingx/requirements.txt
+++ b/starlingx/requirements.txt
@@ -35,5 +35,4 @@ ruamel.yaml==0.16.10
# mock==2.0.0
# unittest_xml_reporting==1.12.0
-# for onap logging
-onappylog>=1.0.9
+PyYAML==5.3.1 \ No newline at end of file
diff --git a/starlingx/starlingx/middleware.py b/starlingx/starlingx/middleware.py
deleted file mode 100644
index a2851d3d..00000000
--- a/starlingx/starlingx/middleware.py
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright (c) 2019 Intel Corporation.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import uuid
-from django.conf import settings
-from onaplogging.mdcContext import MDC
-
-FORWARDED_FOR_FIELDS = ["HTTP_X_FORWARDED_FOR", "HTTP_X_FORWARDED_HOST",
- "HTTP_X_FORWARDED_SERVER"]
-
-
-class LogContextMiddleware(object):
-
- # the last IP behind multiple proxies, if no exist proxies
- # get local host ip.
- def _getLastIp(self, request):
-
- ip = ""
- try:
- for field in FORWARDED_FOR_FIELDS:
- if field in request.META:
- if ',' in request.META[field]:
- parts = request.META[field].split(',')
- ip = parts[-1].strip().split(":")[0]
- else:
- ip = request.META[field].split(":")[0]
-
- if ip == "":
- ip = request.META.get("HTTP_HOST").split(":")[0]
-
- except Exception:
- pass
-
- return ip
-
- def process_request(self, request):
- # fetch propageted Id from other component. if do not fetch id,
- # generate one.
- ReqeustID = request.META.get("HTTP_X_TRANSACTIONID", None)
- if ReqeustID is None:
- ReqeustID = str(uuid.uuid3(uuid.NAMESPACE_URL, settings.MULTIVIM_VERSION))
- MDC.put("requestID", ReqeustID)
- # generate the reqeust id
- InvocationID = str(uuid.uuid4())
- MDC.put("invocationID", InvocationID)
- MDC.put("serviceName", settings.MULTIVIM_VERSION)
- MDC.put("serviceIP", self._getLastIp(request))
- return None
-
- def process_response(self, request, response):
-
- MDC.clear()
- return response
diff --git a/starlingx/starlingx/pub/config/log.yml b/starlingx/starlingx/pub/config/log.yml
index 4e3e248b..ef68a653 100644
--- a/starlingx/starlingx/pub/config/log.yml
+++ b/starlingx/starlingx/pub/config/log.yml
@@ -36,20 +36,11 @@ handlers:
console_handler:
level: "DEBUG"
class: "logging.StreamHandler"
- formatter: "mdcFormat"
+ formatter: "standard"
file_handler:
level: "DEBUG"
class: "logging.handlers.RotatingFileHandler"
filename: "/var/log/onap/multicloud/openstack/starlingx/starlingx.log"
- formatter: "mdcFormat"
+ formatter: "standard"
maxBytes: 52428800
backupCount: 10
-formatters:
- standard:
- format: "%(asctime)s|||||%(name)s||%(thread)||%(funcName)s||%(levelname)s||%(message)s"
- mdcFormat:
- format: "%(asctime)s|||||%(name)s||%(thread)s||%(funcName)s||%(levelname)s||%(message)s||||%(mdc)s \t"
- mdcfmt: "{requestID} {invocationID} {serviceName} {serviceIP}"
- datefmt: "%Y-%m-%d %H:%M:%S"
- (): onaplogging.mdcformatter.MDCFormatter
-
diff --git a/starlingx/starlingx/settings.py b/starlingx/starlingx/settings.py
index 56547ce2..d0eafd59 100644
--- a/starlingx/starlingx/settings.py
+++ b/starlingx/starlingx/settings.py
@@ -14,10 +14,10 @@
import os
import sys
+import platform
+import yaml
+from logging import config as log_config
-from logging import config
-from onaplogging import monkey
-monkey.patch_all()
CACHE_EXPIRATION_TIME = 3600
@@ -55,7 +55,6 @@ MIDDLEWARE_CLASSES = [
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
- 'starlingx.middleware.LogContextMiddleware',
]
ROOT_URLCONF = 'starlingx.urls'
@@ -124,10 +123,47 @@ ROOT_PATH = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__fi
OPENSTACK_VERSION = "starlingx"
MULTIVIM_VERSION = "multicloud-" + OPENSTACK_VERSION
-LOGGING_CONFIG = None
-# yaml configuration of logging
-LOGGING_FILE = os.path.join(BASE_DIR, 'starlingx/pub/config/log.yml')
-config.yamlConfig(filepath=LOGGING_FILE, watchDog=True)
+if platform.system() == 'Windows' or 'test' in sys.argv:
+ LOGGING = {
+ 'version': 1,
+ 'disable_existing_loggers': True,
+ 'formatters': {
+ 'standard': {
+ 'format': '%(asctime)s:[%(name)s]:[%(filename)s]-[%(lineno)d] [%(levelname)s]:%(message)s',
+ },
+ },
+ 'filters': {
+ },
+ 'handlers': {
+ 'file_handler': {
+ 'level': 'DEBUG',
+ 'class': 'logging.handlers.RotatingFileHandler',
+ 'filename': os.path.join(BASE_DIR, 'logs/test.log'),
+ 'formatter': 'standard',
+ 'maxBytes': 1024 * 1024 * 50,
+ 'backupCount': 5,
+ },
+ },
+
+ 'loggers': {
+ 'common': {
+ 'handlers': ['file_handler'],
+ 'level': 'DEBUG',
+ 'propagate': False
+ },
+ }
+ }
+else:
+ log_path = "/var/log/onap/multicloud/openstack/starlingx"
+ if not os.path.exists(log_path):
+ os.makedirs(log_path)
+
+ LOGGING_CONFIG = None
+ # yaml configuration of logging
+ LOGGING_FILE = os.path.join(BASE_DIR, 'starlingx/pub/config/log.yml')
+ with open(file=LOGGING_FILE, mode='r', encoding="utf-8")as file:
+ logging_yaml = yaml.load(stream=file, Loader=yaml.FullLoader)
+ log_config.dictConfig(config=logging_yaml)
if 'test' in sys.argv: