Adding vFirewall HTTP Traffic Profiles for tests including Concurrency, CPS, TPUT...
[yardstick.git] / yardstick / __init__.py
index 7114f80..f95b0a9 100644 (file)
@@ -7,19 +7,50 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
+from __future__ import absolute_import
 import logging
-import logging.config
-
-logging.basicConfig(
-    level=logging.WARNING,
-    format='[%(asctime)s] %(name)-20s %(filename)s:%(lineno)d '
-        '%(levelname)s %(message)s',  # noqa
-    datefmt='%m/%d/%y %H:%M:%S')
-logging.getLogger(__name__).setLevel(logging.INFO)
-
-# Hack to be able to run apexlake unit tests
-# without having to install apexlake.
-import sys
 import os
-import yardstick.vTC.apexlake as apexlake
-sys.path.append(os.path.dirname(apexlake.__file__))
+import errno
+
+# this module must only import other modules that do
+# not require loggers to be created, so this cannot
+# include yardstick.common.utils
+from yardstick.common import constants
+
+try:
+    # do not use yardstick.common.utils.makedirs
+    # since yardstick.common.utils creates a logger
+    # and so it cannot be imported before this code
+    os.makedirs(constants.LOG_DIR)
+except OSError as e:
+    if e.errno != errno.EEXIST:
+        raise
+
+LOG_FILE = os.path.join(constants.LOG_DIR, 'yardstick.log')
+LOG_FORMATTER = '%(asctime)s [%(levelname)s] %(name)s %(filename)s:%(lineno)d %(message)s'
+
+_LOG_FORMATTER = logging.Formatter(LOG_FORMATTER)
+_LOG_STREAM_HDLR = logging.StreamHandler()
+_LOG_FILE_HDLR = logging.FileHandler(LOG_FILE)
+
+LOG = logging.getLogger(__name__)
+
+
+def _init_logging():
+
+    LOG.setLevel(logging.DEBUG)
+
+    _LOG_STREAM_HDLR.setFormatter(_LOG_FORMATTER)
+    if os.environ.get('CI_DEBUG', '').lower() in {'1', 'y', "yes", "true"}:
+        _LOG_STREAM_HDLR.setLevel(logging.DEBUG)
+    else:
+        _LOG_STREAM_HDLR.setLevel(logging.INFO)
+
+    # don't append to log file, clobber
+    _LOG_FILE_HDLR.setFormatter(_LOG_FORMATTER)
+    _LOG_FILE_HDLR.setLevel(logging.DEBUG)
+
+    del logging.root.handlers[:]
+    logging.root.addHandler(_LOG_STREAM_HDLR)
+    logging.root.addHandler(_LOG_FILE_HDLR)
+    logging.debug("logging.root.handlers = %s", logging.root.handlers)