log_test.py 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. from isc.log.log import *
  2. import unittest
  3. import os
  4. class TestRotateFileHandler(unittest.TestCase):
  5. def setUp(self):
  6. self.handler = RotatingFileHandler(filename = '/var/log/rotate_file_handler.log',
  7. maxBytes = 1024, backupCount = 5)
  8. def test_shouldRollover(self):
  9. if(os.path.exists('/var/log/rotate_file_handler.log')):
  10. os.remove('/var/log/rotate_file_handler.log')
  11. record = logging.LogRecord(None, None, "", 0, "rotate file handler", (), None, None)
  12. self.handler.shouldRollover(record)
  13. self.assertTrue(os.path.exists('/var/log/rotate_file_handler.log'))
  14. def test_update_config(self):
  15. self.handler.update_config('/var/log/rotate_file_handler2.log', 3, 512)
  16. self.assertEqual(self.handler.baseFilename, '/var/log/rotate_file_handler2.log')
  17. self.assertEqual(self.handler.maxBytes, 512)
  18. self.assertEqual(self.handler.backupCount, 3)
  19. self.handler.update_config('/var/ZZZXXX/rotate_file_handler2.log', 4, 1024)
  20. self.assertEqual(self.handler.baseFilename, '/var/log/rotate_file_handler2.log')
  21. self.assertEqual(self.handler.maxBytes, 1024)
  22. self.assertEqual(self.handler.backupCount, 4)
  23. class TestLogging(unittest.TestCase):
  24. def setUp(self):
  25. self.file_stream_logger = ModuleLogger('File_Stream_Logger', '/var/log/FileStreamLogger.log',
  26. 'debug', 5, 1024, True)
  27. self.syslog_logger = ModuleLogger('SysLogger', '', 'info', 5, 1024, False)
  28. def test_logging_init(self):
  29. self.assertNotEqual(self.file_stream_logger.null_handler, None)
  30. self.assertNotEqual(self.file_stream_logger.rotating_handler, None)
  31. self.assertNotEqual(self.file_stream_logger.stream_handler, None)
  32. self.assertEqual(self.file_stream_logger.syslog_handler, None)
  33. ret = self.file_stream_logger.null_handler in self.file_stream_logger.handlers
  34. self.assertTrue(ret)
  35. ret = self.file_stream_logger.rotating_handler in self.file_stream_logger.handlers
  36. self.assertTrue(ret)
  37. ret = self.file_stream_logger.stream_handler in self.file_stream_logger.handlers
  38. self.assertTrue(ret)
  39. ret = self.file_stream_logger.syslog_handler in self.file_stream_logger.handlers
  40. self.assertFalse(ret)
  41. logLevel = LEVELS.get('debug', logging.NOTSET)
  42. self.assertEqual(self.file_stream_logger.getEffectiveLevel(), logLevel)
  43. self.assertNotEqual(self.syslog_logger.null_handler, None)
  44. self.assertEqual(self.syslog_logger.rotating_handler, None)
  45. self.assertEqual(self.syslog_logger.stream_handler, None)
  46. self.assertNotEqual(self.syslog_logger.syslog_handler, None)
  47. ret = self.syslog_logger.null_handler in self.syslog_logger.handlers
  48. self.assertTrue(ret)
  49. ret = self.syslog_logger.rotating_handler in self.syslog_logger.handlers
  50. self.assertFalse(ret)
  51. ret = self.syslog_logger.stream_handler in self.syslog_logger.handlers
  52. self.assertFalse(ret)
  53. ret = self.syslog_logger.syslog_handler in self.syslog_logger.handlers
  54. self.assertTrue(ret)
  55. logLevel = LEVELS.get('info', logging.NOTSET)
  56. self.assertEqual(self.syslog_logger.getEffectiveLevel(), logLevel)
  57. def test_add_null_handler(self):
  58. if(self.syslog_logger.null_handler in self.syslog_logger.handlers):
  59. self.syslog_logger.removeHandler(self.syslog_logger.null_handler)
  60. self.syslog_logger.add_null_handler()
  61. ret = self.syslog_logger.null_handler in self.syslog_logger.handlers
  62. self.assertTrue(ret)
  63. def test_add_rotate_handler(self):
  64. if(self.syslog_logger.rotating_handler in self.syslog_logger.handlers):
  65. self.syslog_logger.removeHandler(self.syslog_logger.rotating_handler)
  66. self.syslog_logger.add_rotate_handler('', 5, 1024)
  67. ret = self.syslog_logger.rotating_handler in self.syslog_logger.handlers
  68. self.assertFalse(ret)
  69. self.syslog_logger.add_rotate_handler('/var/log/RotateFile.log', 5, 1024)
  70. ret = self.syslog_logger.rotating_handler in self.syslog_logger.handlers
  71. self.assertTrue(ret)
  72. def test_add_stream_handler(self):
  73. if(self.file_stream_logger.stream_handler in self.file_stream_logger.handlers):
  74. self.file_stream_logger.removeHandler(self.file_stream_logger.stream_handler)
  75. self.file_stream_logger.add_stream_handler()
  76. ret = self.file_stream_logger.stream_handler in self.file_stream_logger.handlers
  77. self.assertTrue(ret)
  78. def test_add_syslog_handler(self):
  79. if(self.syslog_logger.syslog_handler in self.syslog_logger.handlers):
  80. self.syslog_logger.removeHandler(self.syslog_logger.syslog_handler)
  81. self.syslog_logger.add_syslog_handler()
  82. ret = self.syslog_logger.syslog_handler in self.syslog_logger.handlers
  83. self.assertTrue(ret)
  84. def test_update_rotate_handler(self):
  85. self.file_stream_logger.update_rotate_handler('/var/log/RotateFile', 4, 1024)
  86. ret = self.file_stream_logger.rotating_handler in self.file_stream_logger.handlers
  87. self.assertTrue(ret)
  88. self.file_stream_logger.update_rotate_handler('', 5, 1024)
  89. ret = self.file_stream_logger.rotating_handler in self.file_stream_logger.handlers
  90. self.assertFalse(ret)
  91. self.file_stream_logger.update_rotate_handler('/var/log/RotateFile', 4, 1024)
  92. ret = self.file_stream_logger.rotating_handler in self.file_stream_logger.handlers
  93. self.assertTrue(ret)
  94. def test_update_config(self):
  95. self.file_stream_logger.update_config('/var/log/RotateFile','error', 4, 1024)
  96. logLevel = LEVELS.get('error', logging.NOTSET)
  97. self.assertEqual(self.file_stream_logger.getEffectiveLevel(), logLevel)
  98. def test_log_message(self):
  99. print ('\r')
  100. #output log message to stderr and file
  101. self.file_stream_logger.log_message('debug', 'Debug message')
  102. self.file_stream_logger.log_message('info', 'Info message')
  103. self.file_stream_logger.log_message('warning', 'Warning message')
  104. self.file_stream_logger.log_message('error', 'Error message')
  105. self.file_stream_logger.log_message('critical', 'Critical message')
  106. #output log message to syslog
  107. self.syslog_logger.log_message('debug', 'Debug message')
  108. self.syslog_logger.log_message('info', 'Info message')
  109. self.syslog_logger.log_message('warning', 'Warning message')
  110. self.syslog_logger.log_message('error', 'Error message')
  111. self.syslog_logger.log_message('critical', 'Critical message')
  112. if __name__ == '__main__':
  113. unittest.main()