summaryrefslogtreecommitdiffstats
path: root/libs/globals
diff options
context:
space:
mode:
authorShwetha-H-Panduranga <shwetha@gluster.com>2011-12-12 11:21:16 +0530
committerShwetha-H-Panduranga <shwetha@gluster.com>2011-12-12 11:21:16 +0530
commitd7524954807ed63ed05762a945e7e6956c929eda (patch)
tree7f10971a172477c8bb97c76e5000446c397f18b7 /libs/globals
parent134df3400b32ab379b99e6d493cd012ac2b8a21e (diff)
Changes to logger class, Using the logger class in the framework, adding new global values, Changes made to argument parser, testruninfo
Diffstat (limited to 'libs/globals')
-rw-r--r--libs/globals/logger.py206
1 files changed, 61 insertions, 145 deletions
diff --git a/libs/globals/logger.py b/libs/globals/logger.py
index 9d11bd7..1e7b4c0 100644
--- a/libs/globals/logger.py
+++ b/libs/globals/logger.py
@@ -1,30 +1,17 @@
"""
logger class contains variables and methods for Logging
the events during the test run.
-
- Variables:
- SummaryLog: [filename, loglevel, format]
-
- DetailLog: [filename, loglevel, format]
-
- StdoutLog: [loglevel, format]
-
"""
import logging
-class Log():
-
- def __init__(self):
- self._summarylog = {'format':
- '%(asctime)s %(levelname)s : %(filename)s %(lineno)d - \
- \'%(message)s\''}
- self._detaillog = {'format':
- '%(asctime)s %(levelname)s : %(pathname)s %(funcName)s \
- %(lineno)d - \'%(message)s\''}
- self._stdoutlog = {'logstatus':'false', 'format':'%(asctime)s \
- %(levelname)s : %(filename)s %(lineno)d - \'%(message)s\''}
- self._loggers = []
-
+class Log(logging.Logger):
+ _summarylogformat = '%(asctime)s %(levelname)s : %(filename)s %(lineno)d - \'%(message)s\''
+
+ _detaillogformat = '%(asctime)s %(levelname)s : %(pathname)s %(funcName)s %(lineno)d - \'%(message)s\''
+
+ _stdoutlogformat = '%(asctime)s %(levelname)s : %(filename)s %(lineno)d - \'%(message)s\''
+
+ _handlers = {}
def getLogLevel(self, loglevel):
"""
@@ -49,163 +36,92 @@ class Log():
'error': logging.ERROR,
'critical': logging.CRITICAL}
return LEVELS.get(loglevel, logging.NOTSET)
-
- def setSummaryLog(self, filename='SummaryLog.out', loglevel='INFO'):
- """
- Description:
- Set Summary Log Name and Log Level
-
- Parameters:
- filename: SummaryLog File Name
- loglevel : Log level to be set for summary log
- """
-
- self._summarylog['filename'] = filename
- self._summarylog['loglevel'] = self.getLogLevel(loglevel)
-
- def setDetailLog(self, filename='DetailLog.out', loglevel = 'DEBUG'):
- """
- Description:
- Set Detail Log Name and Log Level
-
- Parameters:
- filename: DetailLog FIle name
- loglevel: Log level to be set for detail log
- """
-
- self._detaillog['filename'] = filename
- self._detaillog['loglevel'] = self.getLogLevel(loglevel)
-
- def setStdoutLog(self, do_log=True, loglevel='INFO'):
- """
- Description:
- Set Log Level for logging to STDOUT
-
- Parameters:
- loglevel: Log level for logging to STDOUT
- """
- self._stdoutlog['do_log'] = do_log
- self._stdoutlog['loglevel'] = self.getLogLevel(loglevel)
-
- def createLogger(self, atfdir, logname='ATFLOG'):
- """
- Description:
- Create a Logger with LogName 'logname'
- Parameters:
- logname: Name of the Logger
-
- Return:
- Success: 0 (Successful creation of logger with name : 'logname')
- Failure: 1 (Unable to create logger with name: logname)
+ def addSummarylogHandler(self, filename, loglevel='INFO', mode='w'):
"""
+ Description:
+ # Create Summary Log File Handler
+ # Set the Log Level
+ # Set the Log Record format for Summary Log
- # Create a Logger Object with name "logname".
- # Set the log level to 'DEBUG'
- logger = logging.getLogger(logname)
- logger.setLevel(logging.DEBUG)
- self.loggers.append({'logname': logname})
-
- # Create Summary Log File Handler
- # Set the Log Level
- # Set the Log Record format for Summary Log
- summarylog_abspath = atfdir + "/" + self._summarylog['filename']
+ Returns:
+ Success: 0
+ Failure: 1
+ """
+ loglevel = self.getLogLevel(loglevel)
try:
- summary_handler = logging.FileHandler(summarylog_abspath, mode='w')
+ summary_handler = logging.FileHandler(filename, mode)
except IOError as (errno, errstr):
- print "I/0 error({0}): {1}".format(errno, errstr)
return 1
else:
- summary_formatter = logging.Formatter(self._summarylog['format'])
+ summary_formatter = logging.Formatter(self._summarylogformat)
summary_handler.setFormatter(summary_formatter)
- summary_handler.setLevel(self._summarylog['loglevel'])
- logger.addHandler(summary_handler)
- for log in self._loggers:
- if log['logname'] == logname:
- log['summary_handler'] = summary_handler
- break
-
- # Create Stdout Log StreamHandler if log to stdout is defined
- # Set the Log Level
- # Set the Log Record format for STDOUT
- if self._stdoutlog['do_log'] == 'true':
- stdout_handler = logging.StreamHandler()
- stdout_handler.setLevel(self._stdoutlog['loglevel'])
- stdout_formatter = logging.Formatter(self._stdoutlog['format'])
- stdout_handler.setFormatter(stdout_formatter)
- logger.addHandler(stdout_handler)
- for log in self._loggers:
- if log['logname'] == logname:
- log['stdout_handler'] = stdout_handler
- break
+ summary_handler.setLevel(loglevel)
+ self.addHandler(summary_handler)
+ self._handlers['summarylog'] = summary_handler
+
return 0
- def addDetaillogHandler(self, abspath, logname):
+ def addStdoutlogHandler(self, loglevel='INFO'):
"""
Description:
- Add a Detail Log FileHandler to Logger with logname 'logname'
+ # Create Stdout Log StreamHandler
+ # Set the Log Level
+ # Set the Log Record format for STDOUT
+ """
+ loglevel = self.getLogLevel(loglevel)
+ stdout_handler = logging.StreamHandler()
+ stdout_handler.setLevel(loglevel)
+ stdout_formatter = logging.Formatter(self._stdoutlogformat)
+ stdout_handler.setFormatter(stdout_formatter)
+ self.addHandler(stdout_handler)
+ self._handlers['stdoutlog'] = stdout_handler
+
+ return 0
- Parameters:
- logname: Name of the Logger
+ def addDetaillogHandler(self, filename, loglevel='DEBUG', mode='w'):
+ """
+ Description:
+ #Add a Detail Log FileHandler
+ #Set Log Level
+ #Set Log Record format for DetailLog
Returns:
Success: 0
Failure: 1
"""
-
- logger = logging.getLogger(logname)
-
- # Create Detail Log File Handler
- # Set the Log Level
- # Set the Log Record format for Detail Log
- abspath = abspath + self._detaillog['filename']
-
+ loglevel = self.getLogLevel(loglevel)
+
try:
- detail_handler = logging.FileHandler(abspath, mode='w')
+ detail_handler = logging.FileHandler(filename, mode='w')
except IOError as (errno, errstr):
- logger.error("IOError ({0}): {1}".format(errno, errstr))
return 1
else:
- detail_handler.setLevel(self._detaillog['loglevel'])
- detail_formatter = logging.Formatter(self._detaillog['format'])
+ detail_handler.setLevel(loglevel)
+ detail_formatter = logging.Formatter(self._detaillogformat)
detail_handler.setFormatter(detail_formatter)
- logger.addHandler(detail_handler)
-
- for log in self._loggers:
- if log['logname'] == logname:
- log['detail_handler'] = detail_handler
- break
-
- logger.debug("Detail Log File Handler Successfully Added")
+ self.addHandler(detail_handler)
+ self._handlers['detaillog'] = detail_handler
return 0
- def removeDetaillogHandler(self, logname):
+ def removelogHandler(self, logname):
"""
Description:
- Remove Detail Log File Handler from Logger with
- logname 'logname'
-
+ Remove LogHandler
+
Parameters:
- logname: Name of the Logger
+ logname: Name of the Logger (summarylog/ detaillog/ stdoutlog)
"""
+ if self._handlers.has_key(logname):
+ log_handler = log.pop(logname)
+ self.removeHandler(log_handler)
- logger = logging.getLogger(logname)
- Map = {}
- for log in self._loggers:
- Map = log
-
- if Map.has_key('detail_handler'):
- detail_handler = log.pop('detail_handler')
- logger.removeHandler(detail_handler)
- logger.info("DetailLog Handler Removed for the Logger: " +
- logname)
- else:
- logger.warning("DetailLog Handler Not Found for the Logger: " +
- logname)
- return
+ return 0
+
+__all__ = ['Log']