You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ni...@apache.org on 2014/10/11 20:46:43 UTC

[19/50] [abbrv] git commit: Introduced LogFactory to centralize log management

Introduced LogFactory to centralize log management


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/fa48ec1c
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/fa48ec1c
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/fa48ec1c

Branch: refs/heads/master
Commit: fa48ec1c699eb45db620f7e41cd7fe016e927223
Parents: 850fd05
Author: Chamila de Alwis <ch...@wso2.com>
Authored: Wed Oct 1 19:51:24 2014 +0530
Committer: Chamila de Alwis <ch...@wso2.com>
Committed: Thu Oct 9 15:40:41 2014 +0530

----------------------------------------------------------------------
 .../cartridge-agent/logging.ini                 | 34 ++++++++++++++++++
 .../cartridge-agent/modules/databridge/agent.py |  5 ++-
 .../modules/datapublisher/logpublisher.py       |  7 ++--
 .../modules/healthstatspublisher/healthstats.py | 10 ++----
 .../cartridge-agent/modules/util/log.py         | 38 ++++++++++++++++++++
 5 files changed, 79 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/fa48ec1c/tools/python-cartridge-agent/cartridge-agent/logging.ini
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/logging.ini b/tools/python-cartridge-agent/cartridge-agent/logging.ini
new file mode 100644
index 0000000..cf6bc7d
--- /dev/null
+++ b/tools/python-cartridge-agent/cartridge-agent/logging.ini
@@ -0,0 +1,34 @@
+[formatters]
+keys=default
+
+[formatter_default]
+format=%(asctime)s:%(levelname)s:%(message)s
+class=logging.Formatter
+
+[handlers]
+keys=console, error_file
+
+[handler_console]
+class=logging.StreamHandler
+formatter=default
+args=tuple()
+
+[handler_log_file]
+class=logging.FileHandler
+level=ERROR
+formatter=default
+args=("agent.log", "w")
+
+[handler_error_file]
+class=logging.FileHandler
+level=ERROR
+formatter=default
+args=("error.log", "w")
+
+[loggers]
+keys=root
+
+[logger_root]
+level=DEBUG
+formatter=default
+handlers=console,error_file
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/fa48ec1c/tools/python-cartridge-agent/cartridge-agent/modules/databridge/agent.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/databridge/agent.py b/tools/python-cartridge-agent/cartridge-agent/modules/databridge/agent.py
index 7a8a0dc..b65a2be 100644
--- a/tools/python-cartridge-agent/cartridge-agent/modules/databridge/agent.py
+++ b/tools/python-cartridge-agent/cartridge-agent/modules/databridge/agent.py
@@ -1,5 +1,5 @@
 from thrift.publisher import *
-import logging
+from ..util.log import *
 
 
 class StreamDefinition:
@@ -88,8 +88,7 @@ class ThriftPublisher:
     """
     Handles publishing events to BAM/CEP through thrift using the provided address and credentials
     """
-    logging.basicConfig(level=logging.DEBUG)
-    log = logging.getLogger(__name__)
+    log = LogFactory().get_log(__name__)
 
     def __init__(self, ip, port, username, password, stream_definition):
         """

http://git-wip-us.apache.org/repos/asf/stratos/blob/fa48ec1c/tools/python-cartridge-agent/cartridge-agent/modules/datapublisher/logpublisher.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/datapublisher/logpublisher.py b/tools/python-cartridge-agent/cartridge-agent/modules/datapublisher/logpublisher.py
index d2769d9..d5cdc01 100644
--- a/tools/python-cartridge-agent/cartridge-agent/modules/datapublisher/logpublisher.py
+++ b/tools/python-cartridge-agent/cartridge-agent/modules/datapublisher/logpublisher.py
@@ -1,6 +1,5 @@
 import os
 import datetime
-import logging
 from threading import Thread, current_thread
 
 from ..databridge.agent import *
@@ -14,8 +13,7 @@ class LogPublisher(Thread):
     def __init__(self, file_path, stream_definition, tenant_id, alias, date_time, member_id):
         Thread.__init__(self)
 
-        logging.basicConfig(level=logging.DEBUG)
-        self.log = logging.getLogger(__name__)
+        self.log = LogFactory().get_log(__name__)
 
         self.file_path = file_path
         self.thrift_publisher = ThriftPublisher(
@@ -192,8 +190,7 @@ class DataPublisherConfiguration:
     """
 
     __instance = None
-    logging.basicConfig(level=logging.DEBUG)
-    log = logging.getLogger(__name__)
+    log = LogFactory().get_log(__name__)
 
     @staticmethod
     def get_instance():

http://git-wip-us.apache.org/repos/asf/stratos/blob/fa48ec1c/tools/python-cartridge-agent/cartridge-agent/modules/healthstatspublisher/healthstats.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/healthstatspublisher/healthstats.py b/tools/python-cartridge-agent/cartridge-agent/modules/healthstatspublisher/healthstats.py
index 953c0fc..ea85d44 100644
--- a/tools/python-cartridge-agent/cartridge-agent/modules/healthstatspublisher/healthstats.py
+++ b/tools/python-cartridge-agent/cartridge-agent/modules/healthstatspublisher/healthstats.py
@@ -1,6 +1,5 @@
 from threading import Thread
 import time
-import logging
 import psutil
 import os
 
@@ -23,8 +22,7 @@ class HealthStatisticsPublisherManager(Thread):
         """
         Thread.__init__(self)
 
-        logging.basicConfig(level=logging.DEBUG)
-        self.log = logging.getLogger(__name__)
+        self.log = LogFactory().get_log(__name__)
 
         self.publish_interval = publish_interval
         """:type : int"""
@@ -53,8 +51,7 @@ class HealthStatisticsPublisher:
     Publishes memory usage and load average to thrift server
     """
     def __init__(self):
-        logging.basicConfig(level=logging.DEBUG)
-        self.log = logging.getLogger(__name__)
+        self.log = LogFactory().get_log(__name__)
         self.ports = []
         self.ports.append(CEPPublisherConfiguration.get_instance().server_port)
         cartridgeagentutils.wait_until_ports_active(CEPPublisherConfiguration.get_instance().server_ip, self.ports)
@@ -154,8 +151,7 @@ class CEPPublisherConfiguration:
     """
 
     __instance = None
-    logging.basicConfig(level=logging.DEBUG)
-    log = logging.getLogger(__name__)
+    log = LogFactory().get_log(__name__)
 
     @staticmethod
     def get_instance():

http://git-wip-us.apache.org/repos/asf/stratos/blob/fa48ec1c/tools/python-cartridge-agent/cartridge-agent/modules/util/log.py
----------------------------------------------------------------------
diff --git a/tools/python-cartridge-agent/cartridge-agent/modules/util/log.py b/tools/python-cartridge-agent/cartridge-agent/modules/util/log.py
new file mode 100644
index 0000000..83b1f50
--- /dev/null
+++ b/tools/python-cartridge-agent/cartridge-agent/modules/util/log.py
@@ -0,0 +1,38 @@
+import logging
+import logging.config
+import os
+
+
+class LogFactory(object):
+    """
+    Singleton implementation for handling logging in CartridgeAgent
+    """
+    class __LogFactory:
+        def __init__(self):
+            self.logs = {}
+            logging_conf = os.path.join(os.path.dirname(__file__), "logging.ini")
+            logging.config.fileConfig(logging_conf)
+
+        def get_log(self, name):
+            if name not in self.logs:
+                self.logs[name] = logging.getLogger(name)
+
+            return self.logs[name]
+
+    instance = None
+
+    def __new__(cls, *args, **kwargs):
+        if not LogFactory.instance:
+            LogFactory.instance = LogFactory.__LogFactory()
+
+        return LogFactory.instance
+
+    def get_log(self, name):
+        """
+        Returns a logger class with the specified channel name. Creates a new logger if one doesn't exists for the
+        specified channel
+        :param str name: Channel name
+        :return: The logger class
+        :rtype: RootLogger
+        """
+        self.instance.get_log(name)
\ No newline at end of file