Bottlenecks frame support log information 01/26701/5
authorliyin <liyin11@huawei.com>
Thu, 5 Jan 2017 07:49:19 +0000 (15:49 +0800)
committerAce Lee <liyin11@huawei.com>
Mon, 9 Jan 2017 09:02:33 +0000 (09:02 +0000)
JIRA: BOTTLENECK-122

This code is for Bottlenecks to have a common way
to export log information
the way to use it is:
xxx = Logger.(__name__).getLogger()
xxx.info('xxxxxx')
It will only out info if you don't set DEBUG=true.
the default log file located '/tmp/bottlenecks.log'
we will add configuring log file  function when config funtion complate.

Change-Id: I11cdc8a27f657736c3ec0e0bc1195f0ce0a2fce4
Signed-off-by: liyin <liyin11@huawei.com>
utils/logger.py [new file with mode: 0644]

diff --git a/utils/logger.py b/utils/logger.py
new file mode 100644 (file)
index 0000000..0f93bca
--- /dev/null
@@ -0,0 +1,59 @@
+#!/usr/bin/env python
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+# Logging levels:
+#  Level     Numeric value
+#  CRITICAL  50
+#  ERROR     40
+#  WARNING   30
+#  INFO      20
+#  DEBUG     10
+#  NOTSET    0
+
+import logging
+import os
+
+# from bottlenecks_cfg import Bottlenecks_cfg as bn_cfg
+
+
+class Logger:
+    def __init__(self, logger_name):
+
+        #if user set --debug as a cli parameter
+        #we will set this variable “Debug” to output debug info.
+        DEBUG = os.getenv('DEBUG')
+
+        self.logger = logging.getLogger(logger_name)
+        self.logger.propagate = 0
+        self.logger.setLevel(logging.DEBUG)
+
+        ch = logging.StreamHandler()
+        log_formatter = ('%(asctime)s '
+                         '%(name)s %(filename)s:%(lineno)d '
+                         '%(levelname)s %(message)s')
+
+        formatter = logging.Formatter(log_formatter)
+
+        ch.setFormatter(formatter)
+        if DEBUG is not None and DEBUG.lower() == "true":
+            ch.setLevel(logging.DEBUG)
+        else:
+            ch.setLevel(logging.INFO)
+        self.logger.addHandler(ch)
+
+#        result_path = bn_cfg.['log_dir']
+#        if not os.path.exists(result_path):
+#            os.makedirs(result_path)
+        hdlr = logging.FileHandler('/tmp/bottlenecks.log')
+        hdlr.setFormatter(formatter)
+        hdlr.setLevel(logging.DEBUG)
+        self.logger.addHandler(hdlr)
+
+    def getLogger(self):
+        return self.logger
\ No newline at end of file