Browse Source

Python coding style fix:
-block comments style
-class and variable naming

Modified unittest to enhance readability.



git-svn-id: svn://bind10.isc.org/svn/bind10/branches/trac176@2071 e5f2f494-b856-4b98-b285-d166d9295462

Jerry 15 years ago
parent
commit
aeeb89b295
3 changed files with 192 additions and 197 deletions
  1. 7 9
      src/bin/xfrout/xfrout.py.in
  2. 107 111
      src/lib/python/isc/log/log.py
  3. 78 77
      src/lib/python/isc/log/tests/log_test.py

+ 7 - 9
src/bin/xfrout/xfrout.py.in

@@ -298,7 +298,6 @@ class UnixSockServer(ThreadingUnixStreamServer):
         try:
         try:
             os.unlink(self._sock_file)
             os.unlink(self._sock_file)
         except:
         except:
-            #pass
             self._log.log_message('error', 'OS unlink sock file exception while shutting down')
             self._log.log_message('error', 'OS unlink sock file exception while shutting down')
 
 
     def update_config_data(self, new_config):
     def update_config_data(self, new_config):
@@ -353,7 +352,7 @@ class XfroutServer:
         self._cc = isc.config.ModuleCCSession(SPECFILE_LOCATION, self.config_handler, self.command_handler)
         self._cc = isc.config.ModuleCCSession(SPECFILE_LOCATION, self.config_handler, self.command_handler)
         self._config_data = self._cc.get_full_config()
         self._config_data = self._cc.get_full_config()
         self._cc.start()
         self._cc.start()
-        self._log = isc.log.ModuleLogger(self._config_data.get('log_name'), self._config_data.get('log_file'),
+        self._log = isc.log.NSLogger(self._config_data.get('log_name'), self._config_data.get('log_file'),
                                          self._config_data.get('severity'), self._config_data.get('versions'),
                                          self._config_data.get('severity'), self._config_data.get('versions'),
                                          self._config_data.get('max_bytes'), True)
                                          self._config_data.get('max_bytes'), True)
         self._start_xfr_query_listener()
         self._start_xfr_query_listener()
@@ -379,8 +378,7 @@ class XfroutServer:
             self._config_data[key] = new_config[key]
             self._config_data[key] = new_config[key]
         
         
         if self._log:
         if self._log:
-            self._log.update_config(self._config_data.get('log_file'), self._config_data.get('severity'), 
-                                    self._config_data.get('versions'), self._config_data.get('max_bytes'))
+            self._log.update_config(new_config)
 
 
         if self._unix_socket_server:
         if self._unix_socket_server:
             self._unix_socket_server.update_config_data(self._config_data)
             self._unix_socket_server.update_config_data(self._config_data)
@@ -408,7 +406,7 @@ class XfroutServer:
     def command_handler(self, cmd, args):
     def command_handler(self, cmd, args):
         if cmd == "shutdown":
         if cmd == "shutdown":
             if verbose_mode:
             if verbose_mode:
-                log_msg("Received shutdown command")
+                self._log.log_message("info", "Received shutdown command")
             self.shutdown()
             self.shutdown()
             answer = create_answer(0)
             answer = create_answer(0)
         else: 
         else: 
@@ -449,12 +447,12 @@ if '__main__' == __name__:
         xfrout_server = XfroutServer()
         xfrout_server = XfroutServer()
         xfrout_server.run()
         xfrout_server.run()
     except KeyboardInterrupt:
     except KeyboardInterrupt:
-        print("[b10-xfrout] exit xfrout process")
+        sys.stderr.write("[b10-xfrout] exit xfrout process")
     except SessionError as e:
     except SessionError as e:
-        print('[b10-xfrout] Error creating xfrout, '
-              'is the command channel daemon running?' )
+        sys.stderr.write("[b10-xfrout] Error creating xfrout," 
+                           "is the command channel daemon running?")
     except ModuleCCSessionError as e:
     except ModuleCCSessionError as e:
-        print('[b10-xfrout] exit xfrout process:', e)
+        sys.stderr.write("info", '[b10-xfrout] exit xfrout process:', e)
 
 
     if xfrout_server:
     if xfrout_server:
         xfrout_server.shutdown()
         xfrout_server.shutdown()

+ 107 - 111
src/lib/python/isc/log/log.py

@@ -13,8 +13,7 @@
 # NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
 # NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
 # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 
-"""
-This module is to convert python logging module over
+"""This module is to convert python logging module over
 to log4python.
 to log4python.
 Copyright (C) 2010  Internet Systems Consortium.
 Copyright (C) 2010  Internet Systems Consortium.
 To use, simply 'import isc.log.log' and log away!
 To use, simply 'import isc.log.log' and log away!
@@ -24,8 +23,7 @@ import syslog
 import logging
 import logging
 import logging.handlers
 import logging.handlers
 
 
-"""
-LEVELS: logging levels mapping
+"""LEVELS: logging levels mapping
 """
 """
 LEVELS = {'debug' : logging.DEBUG,
 LEVELS = {'debug' : logging.DEBUG,
        	  'info' : logging.INFO,
        	  'info' : logging.INFO,
@@ -33,32 +31,29 @@ LEVELS = {'debug' : logging.DEBUG,
           'error' : logging.ERROR,
           'error' : logging.ERROR,
           'critical' : logging.CRITICAL}
           'critical' : logging.CRITICAL}
 
 
-formatter = logging.Formatter("%(name)s: %(levelname)s: %(message)s")
-time_formatter = logging.Formatter("%(asctime)s: %(name)s: %(levelname)s: %(message)s")
+FORMATTER = logging.Formatter("%(name)s: %(levelname)s: %(message)s")
+TIME_FORMATTER = logging.Formatter("%(asctime)s: %(name)s: %(levelname)s: %(message)s")
 
 
-class RotatingFileHandler(logging.handlers.RotatingFileHandler):
+class NSFileLogHandler(logging.handlers.RotatingFileHandler):
+    """RotatingFileHandler: replace RotatingFileHandler with a custom handler"""
 
 
     def __init__(self, filename, mode='a', maxBytes=0, backupCount=0, encoding=None, delay=0):
     def __init__(self, filename, mode='a', maxBytes=0, backupCount=0, encoding=None, delay=0):
-        super(RotatingFileHandler, self).__init__(filename, mode, maxBytes,
-                                                  backupCount, encoding, delay)
-    """
-    RotatingFileHandler: replace RotatingFileHandler with a custom handler 
-    """
+        super(NSFileLogHandler, self).__init__(filename, mode, maxBytes,
+                                                backupCount, encoding, delay)
+
     def shouldRollover(self, record):
     def shouldRollover(self, record):
-        """
-        Rewrite RotatingFileHandler.shouldRollover. 
+        """Rewrite RotatingFileHandler.shouldRollover. 
        
        
-        If the log file is deleted at runtime, a new file will be created. 
+        If the log file is deleted at runtime, a new file will be created.
         """
         """
         dfn = self.baseFilename                 
         dfn = self.baseFilename                 
         if (self.stream) and (not os.path.exists(dfn)): #Is log file exist?
         if (self.stream) and (not os.path.exists(dfn)): #Is log file exist?
             self.stream.close()
             self.stream.close()
             self.stream = self._open()
             self.stream = self._open()
-        return super(RotatingFileHandler, self).shouldRollover(record)
+        return super(NSFileLogHandler, self).shouldRollover(record)
     
     
     def update_config(self, file_name, backup_count, max_bytes):
     def update_config(self, file_name, backup_count, max_bytes):
-        """
-        Update RotatingFileHandler configuration.
+        """Update RotatingFileHandler configuration.
 
 
         If the file path is not exist, we will use the old log file.
         If the file path is not exist, we will use the old log file.
         input:
         input:
@@ -72,24 +67,22 @@ class RotatingFileHandler(logging.handlers.RotatingFileHandler):
         self.maxBytes = max_bytes
         self.maxBytes = max_bytes
         self.backupCount = backup_count
         self.backupCount = backup_count
 
 
-class SLHandler(logging.Handler):    
-    """
-    Replace SysLogHandler with a custom handler 
+class NSSysLogHandler(logging.Handler):    
+    """Replace SysLogHandler with a custom handler 
 
 
     A handler class which sends formatted logging records to a syslog
     A handler class which sends formatted logging records to a syslog
-    server. 
+    server.
     """
     """
     def __init__(self, ident, logopt=0, facility=syslog.LOG_USER):        
     def __init__(self, ident, logopt=0, facility=syslog.LOG_USER):        
-        """
-        Initialize a handler.
+        """Initialize a handler.
     
     
         If facility is not specified, LOG_USER is used.
         If facility is not specified, LOG_USER is used.
         """
         """
-        super(SLHandler, self).__init__()
-        self.ident = ident        
-        self.logopt = logopt        
-        self.facility = facility        
-        self.mappings = {            
+        super(NSSysLogHandler, self).__init__()
+        self._ident = ident        
+        self._logopt = logopt        
+        self._facility = facility        
+        self._mappings = {            
                 logging.DEBUG: syslog.LOG_DEBUG,            
                 logging.DEBUG: syslog.LOG_DEBUG,            
                 logging.INFO: syslog.LOG_INFO,            
                 logging.INFO: syslog.LOG_INFO,            
                 logging.WARNING: syslog.LOG_WARNING,            
                 logging.WARNING: syslog.LOG_WARNING,            
@@ -97,146 +90,149 @@ class SLHandler(logging.Handler):
                 logging.CRITICAL: syslog.LOG_CRIT,            
                 logging.CRITICAL: syslog.LOG_CRIT,            
                 }   
                 }   
         
         
-    def encodeLevel(self, level):        
-        """
-        Encoding the priority.
-        """
-        return self.mappings.get(level, syslog.LOG_INFO)    
+    def _encodeLevel(self, level):        
+        """Encoding the priority."""
+        return self._mappings.get(level, syslog.LOG_INFO)    
    
    
     def emit(self, record):   
     def emit(self, record):   
-        """
-        Emit a record.
+        """Emit a record.
      
      
         The record is formatted, and then sent to the syslog server. If
         The record is formatted, and then sent to the syslog server. If
         exception information is present, it is NOT sent to the server.
         exception information is present, it is NOT sent to the server.
         """
         """
-        syslog.openlog(self.ident, self.logopt, self.facility)        
+        syslog.openlog(self._ident, self._logopt, self._facility)        
         msg = self.format(record)        
         msg = self.format(record)        
-        prio = self.encodeLevel(record.levelno)        
+        prio = self._encodeLevel(record.levelno)        
         syslog.syslog(prio, msg)        
         syslog.syslog(prio, msg)        
         syslog.closelog()
         syslog.closelog()
 
 
 
 
-class ModuleLogger(logging.getLoggerClass()):
-    """
-    Override logging.logger behaviour
-    """
-    def __init__(self, log_name, log_file, 
-                 severity='debug', backup_count=0, max_bytes=0,
-                 log_to_console=True):
-        """
-        Initializes the logger with some specific parameters
+class NSLogger(logging.getLoggerClass()):
+    """Override logging.logger behaviour."""
+    def __init__(self, log_name, log_file, severity='debug', versions=0,
+                 max_bytes=0, log_to_console=True):
+        """Initializes the logger with some specific parameters
 
 
-        If log_to_console is Ture, stream handler will be used;
+        If log_to_console is True, stream handler will be used;
         else syslog handler will be used.
         else syslog handler will be used.
+
+        To disable file handler, set log_file = ''.
         """
         """
-        super(ModuleLogger, self).__init__(log_name)
+        self._log_name = log_name
+        self._log_file = log_file
+        self._severity = severity
+        self._versions = versions
+        self._max_bytes = max_bytes
+
+        super(NSLogger, self).__init__(self._log_name)
 
 
         # Set up a specific logger with our desired output level
         # Set up a specific logger with our desired output level
-        logLevel = LEVELS.get(severity, logging.NOTSET)
+        logLevel = LEVELS.get(self._severity, logging.NOTSET)
         self.setLevel(logLevel)
         self.setLevel(logLevel)
-        
-        self.null_handler = None 
-        self.rotating_handler = None
-        self.stream_handler = None
-        self.syslog_handler = None
 
 
-        self.add_null_handler()
-        self.add_rotate_handler(log_file, backup_count, max_bytes)
+        self._file_handler = None
+        self._stream_handler = None
+        self._syslog_handler = None
+
+        self._add_rotate_handler(self._log_file, self._versions, self._max_bytes)
         if log_to_console:
         if log_to_console:
-            self.add_stream_handler()
+            self._add_stream_handler()
         else:
         else:
-            self.add_syslog_handler()
-
-    def add_null_handler(self):
-        """
-        Add a null handler.
-        """
-        self.null_handler = logging.NullHandler()
-        self.addHandler(self.null_handler)
+            self._add_syslog_handler()
 
 
-    def add_rotate_handler(self, log_file, backup_count, max_bytes):
-        """
-        Add a rotate file handler.
+    def _add_rotate_handler(self, log_file, backup_count, max_bytes):
+        """Add a rotate file handler.
    
    
         input:
         input:
             log_file : the location of log file. Handler wouldn't be created 
             log_file : the location of log file. Handler wouldn't be created 
-                       if log_file is not specified
+                       if log_file=''
             max_bytes : limit log growth
             max_bytes : limit log growth
             backup_count : max backup count
             backup_count : max backup count
         """
         """
         if(log_file != 0  and log_file != ''):
         if(log_file != 0  and log_file != ''):
             try:
             try:
-                self.rotating_handler = RotatingFileHandler(filename = log_file, 
-                                              maxBytes = max_bytes, backupCount = backup_count)
+                self._file_handler = NSFileLogHandler(filename = log_file,
+                                          maxBytes = max_bytes, backupCount = backup_count)
             except IOError:
             except IOError:
-                self.rotating_handler = None
+                self._file_handler = None
                 return
                 return
-            self.rotating_handler.setFormatter(time_formatter)
-            self.addHandler(self.rotating_handler)
+            self._file_handler.setFormatter(TIME_FORMATTER)
+            self.addHandler(self._file_handler)
 
 
-    def add_stream_handler(self):
-        """
-        Add a stream handler.
+    def _add_stream_handler(self):
+        """Add a stream handler.
     
     
         sys.stderr will be used for logging output.
         sys.stderr will be used for logging output.
         """
         """
-        self.stream_handler = logging.StreamHandler()
-        self.stream_handler.setFormatter(time_formatter)
-        self.addHandler(self.stream_handler)
+        self._stream_handler = logging.StreamHandler()
+        self._stream_handler.setFormatter(TIME_FORMATTER)
+        self.addHandler(self._stream_handler)
 
 
-    def add_syslog_handler(self):
-        """
-        Add a syslog handler.
+    def _add_syslog_handler(self, facility=syslog.LOG_USER):
+        """Add a syslog handler.
    
    
         If facility is not specified, LOG_USER is used.
         If facility is not specified, LOG_USER is used.
         The default severity level is INFO.
         The default severity level is INFO.
         """
         """
-        self.syslog_handler = SLHandler('BIND10', facility=syslog.LOG_USER)
-        self.syslog_handler.setFormatter(formatter)
+        self._syslog_handler = NSSysLogHandler('BIND10', facility)
+        self._syslog_handler.setFormatter(FORMATTER)
         #set syslog handler severity level INFO
         #set syslog handler severity level INFO
-        self.syslog_handler.setLevel(logging.INFO)
-        self.addHandler(self.syslog_handler)
+        self._syslog_handler.setLevel(logging.INFO)
+        self.addHandler(self._syslog_handler)
 
 
-    def update_rotate_handler(self, log_file, backup_count, max_bytes):
-        """
-        If the rotate file handler has been added to the logger, update its 
+    def _update_rotate_handler(self, log_file, backup_count, max_bytes):
+        """If the rotate file handler has been added to the logger, update its 
         configuration, or add it to the logger.
         configuration, or add it to the logger.
-    
         """
         """
-        if (self.rotating_handler in self.handlers):
+        if (self._file_handler in self.handlers):
             if(log_file != 0 and log_file != ''):
             if(log_file != 0 and log_file != ''):
-                self.rotating_handler.update_config(log_file, backup_count, max_bytes)
+                self._file_handler.update_config(log_file, backup_count, max_bytes)
             else:
             else:
-                """
-                If log file is empty, the handler will be removed.
-                """
-                self.rotating_handler.flush()
-                self.rotating_handler.close()
-                self.removeHandler(self.rotating_handler)
+                """If log file is empty, the handler will be removed."""
+                self._file_handler.flush()
+                self._file_handler.close()
+                self.removeHandler(self._file_handler)
         else:
         else:
-            self.add_rotate_handler(log_file, backup_count, max_bytes)
-
-
-    def update_config(self, file_name, level, backup_count, max_bytes):
-        """
-        Update logger's configuration.
+            self._add_rotate_handler(log_file, backup_count, max_bytes)
+
+    def _get_config(self, config_data):
+         """Get config data from module configration"""
+         
+         log_file_str = config_data.get('log_file')
+         if(log_file_str):
+            self._log_file = log_file_str
+         
+         severity_str = config_data.get('severity')
+         if(severity_str):
+             self._severity = severity_str
+
+         versions_str = config_data.get('versions')
+         if(versions_str):
+             self._versions = int(versions_str)
+
+         max_bytes_str = config_data.get('max_bytes')
+         if(max_bytes_str):
+             self._max_bytes = int(max_bytes_str)
+
+    def update_config(self, config_data):
+        """Update logger's configuration.
 
 
         We can update logger's log level and its rotate file handler's configuration.
         We can update logger's log level and its rotate file handler's configuration.
         """
         """
-        logLevel = LEVELS.get(level, logging.NOTSET)
+        self._get_config(config_data)
+
+        logLevel = LEVELS.get(self._severity, logging.NOTSET)
         if(logLevel != self.getEffectiveLevel()):
         if(logLevel != self.getEffectiveLevel()):
             self.setLevel(logLevel)
             self.setLevel(logLevel)
-        self.update_rotate_handler(file_name, backup_count, max_bytes)
+        self._update_rotate_handler(self._log_file, self._versions, self._max_bytes)
 
 
     def log_message(self, level, msg, *args, **kwargs):
     def log_message(self, level, msg, *args, **kwargs):
-        """
-        Log 'msg % args' with the integer severity 'level'.
+        """Log 'msg % args' with the integer severity 'level'.
      
      
         To pass exception information, use the keyword argument exc_info with
         To pass exception information, use the keyword argument exc_info with
         a true value, e.g.
         a true value, e.g.
   
   
-        logger.log_message('info', "We have a %s", "mysterious problem", exc_info=1)
+        logger.log_message('info', "We have a %s", "mysterious problem").
         """
         """
         logLevel = LEVELS.get(level, logging.NOTSET)
         logLevel = LEVELS.get(level, logging.NOTSET)
         self.log(logLevel, msg, *args, **kwargs)
         self.log(logLevel, msg, *args, **kwargs)

+ 78 - 77
src/lib/python/isc/log/tests/log_test.py

@@ -1,142 +1,143 @@
 from isc.log.log import *
 from isc.log.log import *
 import unittest
 import unittest
 import os
 import os
+import sys
+
+FILE_LOG1 = '/tmp/b10_file1.log'
+FILE_LOG2 = '/tmp/b10_file2.log'
+FILE_LOG3 = '/tmp/ZZZZ/b10_file2.log'
+
+FILE_STREAM_LOG1 = '/tmp/b10_file_stream1.log'
+FILE_STREAM_LOG2 = '/tmp/b10_file_stream2.log'
+FILE_STREAM_LOG3 = '/tmp/b10_file_stream2.log'
+
 
 
 class TestRotateFileHandler(unittest.TestCase):
 class TestRotateFileHandler(unittest.TestCase):
 
 
     def setUp(self):
     def setUp(self):
-        self.handler = RotatingFileHandler(filename = '/var/log/rotate_file_handler.log',
-                                           maxBytes = 1024, backupCount = 5)
+        self.handler = NSFileLogHandler(filename = FILE_LOG1, maxBytes = 1024, backupCount = 5)
 
 
     def test_shouldRollover(self):
     def test_shouldRollover(self):
-        if(os.path.exists('/var/log/rotate_file_handler.log')):
-            os.remove('/var/log/rotate_file_handler.log')
+        if(os.path.exists(FILE_LOG1)):
+            os.remove(FILE_LOG1)
         record = logging.LogRecord(None, None, "", 0, "rotate file handler", (), None, None)
         record = logging.LogRecord(None, None, "", 0, "rotate file handler", (), None, None)
         self.handler.shouldRollover(record)
         self.handler.shouldRollover(record)
-        self.assertTrue(os.path.exists('/var/log/rotate_file_handler.log'))
+        self.assertTrue(os.path.exists(FILE_LOG1))
 
 
     def test_update_config(self):
     def test_update_config(self):
-        self.handler.update_config('/var/log/rotate_file_handler2.log', 3, 512)
-        self.assertEqual(self.handler.baseFilename, '/var/log/rotate_file_handler2.log')
+        self.handler.update_config(FILE_LOG2, 3, 512)
+        self.assertEqual(self.handler.baseFilename, FILE_LOG2)
         self.assertEqual(self.handler.maxBytes, 512)
         self.assertEqual(self.handler.maxBytes, 512)
         self.assertEqual(self.handler.backupCount, 3)
         self.assertEqual(self.handler.backupCount, 3)
 
 
-        self.handler.update_config('/var/ZZZXXX/rotate_file_handler2.log', 4, 1024)
-        self.assertEqual(self.handler.baseFilename, '/var/log/rotate_file_handler2.log')
+        self.handler.update_config(FILE_LOG3, 4, 1024)
+        self.assertEqual(self.handler.baseFilename, FILE_LOG2)
         self.assertEqual(self.handler.maxBytes, 1024)
         self.assertEqual(self.handler.maxBytes, 1024)
         self.assertEqual(self.handler.backupCount, 4)
         self.assertEqual(self.handler.backupCount, 4)
 
 
+    def tearDown(self):
+        self.handler.flush()
+        self.handler.close()
 
 
-class TestLogging(unittest.TestCase):
 
 
+class TestLogging(unittest.TestCase):
+    
     def setUp(self):
     def setUp(self):
-        self.file_stream_logger = ModuleLogger('File_Stream_Logger', '/var/log/FileStreamLogger.log',
-                                               'debug', 5, 1024, True)
-        self.syslog_logger = ModuleLogger('SysLogger', '', 'info', 5, 1024, False)
-
+        self.file_stream_logger = NSLogger('File_Stream_Logger', FILE_STREAM_LOG1,
+                                           'debug', 5, 1024, True)
+        self.syslog_logger = NSLogger('SysLogger', '', 'info', 5, 1024, False)
+    
     def test_logging_init(self):
     def test_logging_init(self):
-        self.assertNotEqual(self.file_stream_logger.null_handler, None)
-        self.assertNotEqual(self.file_stream_logger.rotating_handler, None)
-        self.assertNotEqual(self.file_stream_logger.stream_handler, None)
-        self.assertEqual(self.file_stream_logger.syslog_handler, None)
+        self.assertNotEqual(self.file_stream_logger._file_handler, None)
+        self.assertNotEqual(self.file_stream_logger._stream_handler, None)
+        self.assertEqual(self.file_stream_logger._syslog_handler, None)
 
 
-        ret = self.file_stream_logger.null_handler in self.file_stream_logger.handlers
+        ret = self.file_stream_logger._file_handler in self.file_stream_logger.handlers
         self.assertTrue(ret)
         self.assertTrue(ret)
-        ret = self.file_stream_logger.rotating_handler in self.file_stream_logger.handlers
+        ret = self.file_stream_logger._stream_handler in self.file_stream_logger.handlers
         self.assertTrue(ret)
         self.assertTrue(ret)
-        ret = self.file_stream_logger.stream_handler in self.file_stream_logger.handlers
-        self.assertTrue(ret)
-        ret = self.file_stream_logger.syslog_handler in self.file_stream_logger.handlers
+        ret = self.file_stream_logger._syslog_handler in self.file_stream_logger.handlers
         self.assertFalse(ret)
         self.assertFalse(ret)
         logLevel = LEVELS.get('debug', logging.NOTSET)
         logLevel = LEVELS.get('debug', logging.NOTSET)
         self.assertEqual(self.file_stream_logger.getEffectiveLevel(), logLevel)
         self.assertEqual(self.file_stream_logger.getEffectiveLevel(), logLevel)
 
 
-        self.assertNotEqual(self.syslog_logger.null_handler, None)
-        self.assertEqual(self.syslog_logger.rotating_handler, None)
-        self.assertEqual(self.syslog_logger.stream_handler, None)
-        self.assertNotEqual(self.syslog_logger.syslog_handler, None)
-        ret = self.syslog_logger.null_handler in self.syslog_logger.handlers
-        self.assertTrue(ret)
-        ret = self.syslog_logger.rotating_handler in self.syslog_logger.handlers
+        self.assertEqual(self.syslog_logger._file_handler, None)
+        self.assertEqual(self.syslog_logger._stream_handler, None)
+        self.assertNotEqual(self.syslog_logger._syslog_handler, None)
+        ret = self.syslog_logger._file_handler in self.syslog_logger.handlers
         self.assertFalse(ret)
         self.assertFalse(ret)
-        ret = self.syslog_logger.stream_handler in self.syslog_logger.handlers
+        ret = self.syslog_logger._stream_handler in self.syslog_logger.handlers
         self.assertFalse(ret)
         self.assertFalse(ret)
-        ret = self.syslog_logger.syslog_handler in self.syslog_logger.handlers
+        ret = self.syslog_logger._syslog_handler in self.syslog_logger.handlers
         self.assertTrue(ret)
         self.assertTrue(ret)
 
 
         logLevel = LEVELS.get('info', logging.NOTSET)
         logLevel = LEVELS.get('info', logging.NOTSET)
         self.assertEqual(self.syslog_logger.getEffectiveLevel(), logLevel)
         self.assertEqual(self.syslog_logger.getEffectiveLevel(), logLevel)
 
 
-    def test_add_null_handler(self):
-        if(self.syslog_logger.null_handler in self.syslog_logger.handlers):
-            self.syslog_logger.removeHandler(self.syslog_logger.null_handler)
-
-        self.syslog_logger.add_null_handler()
-        ret = self.syslog_logger.null_handler in self.syslog_logger.handlers
-        self.assertTrue(ret)
-    
-
     def test_add_rotate_handler(self):
     def test_add_rotate_handler(self):
-        if(self.syslog_logger.rotating_handler in self.syslog_logger.handlers):
-            self.syslog_logger.removeHandler(self.syslog_logger.rotating_handler)
+        if(self.syslog_logger._file_handler in self.syslog_logger.handlers):
+            self.syslog_logger.removeHandler(self.syslog_logger._file_handler)
         
         
-        self.syslog_logger.add_rotate_handler('', 5, 1024)
-        ret = self.syslog_logger.rotating_handler in self.syslog_logger.handlers
+        self.syslog_logger._add_rotate_handler('', 5, 1024)
+        ret = self.syslog_logger._file_handler in self.syslog_logger.handlers
         self.assertFalse(ret)
         self.assertFalse(ret)
 
 
-        self.syslog_logger.add_rotate_handler('/var/log/RotateFile.log', 5, 1024)
-        ret = self.syslog_logger.rotating_handler in self.syslog_logger.handlers
+        self.syslog_logger._add_rotate_handler(FILE_STREAM_LOG1, 5, 1024)
+        ret = self.syslog_logger._file_handler in self.syslog_logger.handlers
         self.assertTrue(ret)
         self.assertTrue(ret)
 
 
-    def test_add_stream_handler(self):
-        if(self.file_stream_logger.stream_handler in self.file_stream_logger.handlers):
-            self.file_stream_logger.removeHandler(self.file_stream_logger.stream_handler)
+    def test_add__stream_handler(self):
+        if(self.file_stream_logger._stream_handler in self.file_stream_logger.handlers):
+            self.file_stream_logger.removeHandler(self.file_stream_logger._stream_handler)
 
 
-        self.file_stream_logger.add_stream_handler()
-        ret = self.file_stream_logger.stream_handler in self.file_stream_logger.handlers
+        self.file_stream_logger._add_stream_handler()
+        ret = self.file_stream_logger._stream_handler in self.file_stream_logger.handlers
         self.assertTrue(ret)
         self.assertTrue(ret)
 
 
     def test_add_syslog_handler(self):
     def test_add_syslog_handler(self):
-        if(self.syslog_logger.syslog_handler in self.syslog_logger.handlers):
-            self.syslog_logger.removeHandler(self.syslog_logger.syslog_handler)
+        if(self.syslog_logger._syslog_handler in self.syslog_logger.handlers):
+            self.syslog_logger.removeHandler(self.syslog_logger._syslog_handler)
 
 
-        self.syslog_logger.add_syslog_handler()
-        ret = self.syslog_logger.syslog_handler in self.syslog_logger.handlers
+        self.syslog_logger._add_syslog_handler()
+        ret = self.syslog_logger._syslog_handler in self.syslog_logger.handlers
         self.assertTrue(ret)
         self.assertTrue(ret)
 
 
     def test_update_rotate_handler(self):
     def test_update_rotate_handler(self):
-        self.file_stream_logger.update_rotate_handler('/var/log/RotateFile', 4, 1024)
-        ret = self.file_stream_logger.rotating_handler in self.file_stream_logger.handlers
+        self.file_stream_logger._update_rotate_handler(FILE_STREAM_LOG2, 4, 1024)
+        ret = self.file_stream_logger._file_handler in self.file_stream_logger.handlers
         self.assertTrue(ret)
         self.assertTrue(ret)
 
 
-        self.file_stream_logger.update_rotate_handler('', 5, 1024)
-        ret = self.file_stream_logger.rotating_handler in self.file_stream_logger.handlers
+        self.file_stream_logger._update_rotate_handler('', 5, 1024)
+        ret = self.file_stream_logger._file_handler in self.file_stream_logger.handlers
         self.assertFalse(ret)
         self.assertFalse(ret)
 
 
-        self.file_stream_logger.update_rotate_handler('/var/log/RotateFile', 4, 1024)
-        ret = self.file_stream_logger.rotating_handler in self.file_stream_logger.handlers
+        self.file_stream_logger._update_rotate_handler(FILE_STREAM_LOG1, 4, 1024)
+        ret = self.file_stream_logger._file_handler in self.file_stream_logger.handlers
         self.assertTrue(ret)
         self.assertTrue(ret)
 
 
     def test_update_config(self):
     def test_update_config(self):
-        self.file_stream_logger.update_config('/var/log/RotateFile','error', 4, 1024)
+        update_config = {'log_file' : FILE_STREAM_LOG1,
+                         'severity' : 'error',
+                         'versions' : 4,
+                         'max_bytes' : 1024}
+        self.file_stream_logger.update_config(update_config)
         logLevel = LEVELS.get('error', logging.NOTSET)
         logLevel = LEVELS.get('error', logging.NOTSET)
         self.assertEqual(self.file_stream_logger.getEffectiveLevel(), logLevel)
         self.assertEqual(self.file_stream_logger.getEffectiveLevel(), logLevel)
 
 
     def test_log_message(self):
     def test_log_message(self):
-        print ('\r')
-        #output log message to stderr and file
-        self.file_stream_logger.log_message('debug', 'Debug message')
-        self.file_stream_logger.log_message('info', 'Info message')
-        self.file_stream_logger.log_message('warning', 'Warning message')
-        self.file_stream_logger.log_message('error', 'Error message')
-        self.file_stream_logger.log_message('critical', 'Critical message')
-
-        #output log message to syslog 
-        self.syslog_logger.log_message('debug', 'Debug message')
-        self.syslog_logger.log_message('info', 'Info message')
-        self.syslog_logger.log_message('warning', 'Warning message')
-        self.syslog_logger.log_message('error', 'Error message')
-        self.syslog_logger.log_message('critical', 'Critical message')
+        update_config = {'log_file' : FILE_STREAM_LOG3,
+                         'severity' : 'critical',
+                         'versions' : 4,
+                         'max_bytes' : 1024}
+        self.file_stream_logger.update_config(update_config)
+        self.file_stream_logger.log_message('debug', 'debug message')
+        self.file_stream_logger.log_message('info', 'info message')
+        self.file_stream_logger.log_message('warning', 'warning message')
+        self.file_stream_logger.log_message('error', 'error message')
+        self.assertFalse(os.path.exists(FILE_STREAM_LOG3))
+    
+    def tearDown(self):
+        pass
 
 
 if __name__ == '__main__':
 if __name__ == '__main__':
     unittest.main()
     unittest.main()