예제 #1
0
    def _set_console_log(self, logger_configuration_file):
        """Set console logger for Alignak arbiter verify mode"""
        setup_logger(logger_configuration_file,
                     log_dir=None,
                     process_name='',
                     log_file='')
        self.logger_ = logging.getLogger(ALIGNAK_LOGGER_NAME)
        set_log_level(logging.INFO)

        # Log message
        self.logger_.info("Message")
        self.show_logs()

        set_log_console(logging.WARNING)

        # Log message
        self.logger_.info("Message")
        self.show_logs()

        logger_ = logging.getLogger(ALIGNAK_LOGGER_NAME)
        for hdlr in logger_.handlers:
            if getattr(hdlr, 'filename', None):
                print("- handler : %s (%s) -> %s" %
                      (hdlr, hdlr.formatter._fmt, hdlr.filename))
            else:
                print("- handler : %s (%s)" % (hdlr, hdlr.formatter._fmt))
예제 #2
0
    def test_log_utf8(self):
        """ Log as UTF8 format

        :return:
        """
        # A russian text
        set_log_level(logging.INFO)
        self.logger.info(u"На берегу пустынных волн")
        sutf8 = u'I love myself $£¤'  # dollar, pound, currency
        self.logger.info(sutf8)
예제 #3
0
    def test_log_format(self):
        """ Log string format

        :return:
        """
        # Use the default unit tests logger
        # Configure the logger with a daemon name
        logger_configuration_file = os.path.join(
            os.getcwd(), './etc/fusionsupervision-logger.json')
        setup_logger(logger_configuration_file,
                     log_dir=None,
                     process_name='process_name',
                     log_file='')
        self.logger_ = logging.getLogger(ALIGNAK_LOGGER_NAME)

        set_log_level(logging.INFO)
        msg = "Message"
        self.logger_.info(msg)
        self.show_logs()
        # The logger default format is including 'fusionsupervision_tests.'
        self.assert_any_log_match('[\[0-9\]*] INFO: \[arbiter-master.%s\] %s' %
                                  (self.logger_.name, msg))

        # Configure the logger with a daemon name
        logger_configuration_file = os.path.join(
            os.getcwd(), './etc/fusionsupervision-logger.json')
        setup_logger(logger_configuration_file,
                     log_dir=None,
                     process_name='process_name',
                     log_file='')
        self.logger_ = logging.getLogger(ALIGNAK_LOGGER_NAME)

        print("Logger configuration: ")
        logger_ = logging.getLogger(ALIGNAK_LOGGER_NAME)
        for hdlr in logger_.handlers:
            if getattr(hdlr, 'filename',
                       None) and 'fusionsupervision_tests' in hdlr.filename:
                print("- handler : %s (%s) -> %s" %
                      (hdlr, hdlr.formatter._fmt, hdlr.filename))
            else:
                print("- handler : %s (%s)" % (hdlr, hdlr.formatter._fmt))

        set_log_level(logging.INFO)
        msg2 = "Message 2"
        self.logger_.info(msg2)
        self.show_logs()
        # The logger default format is including 'fusionsupervision_tests.'
        self.assert_any_log_match('[\[0-9\]*] INFO: \[arbiter-master.%s\] %s' %
                                  (self.logger_.name, msg))
        self.assert_any_log_match('[\[0-9\]*] INFO: \[arbiter-master.%s\] %s' %
                                  (self.logger_.name, msg2))
예제 #4
0
    def test_log_and_change_level(self):
        """ Test change log level 2

        :return:
        """
        # Use the default unit tests logger
        set_log_level(logging.INFO)
        self.logger_.info("This message will be collected")
        set_log_level(logging.WARNING)
        self.logger_.info("This message won't be collected")

        self.show_logs()

        self.assert_any_log_match("This message will be collected")
        self.assert_no_log_match("This message won't be collected")
예제 #5
0
    def test_default_logger_values(self):
        """ Test default logger values

        :return:
        """
        # Use a logger included in the default Alignak logger hierarchy
        test_logger = logging.getLogger("fusionsupervision.test.name")
        set_log_level(logging.WARNING)
        assert test_logger.parent == self.logger_

        test_logger.debug("Debug log")
        test_logger.info("Info log")
        test_logger.warning("Warning log")
        test_logger.error("Error log")
        test_logger.critical("Critical log")

        self.show_logs()

        self.assert_no_log_match(re.escape(u"Debug log"))
        self.assert_no_log_match(re.escape(u"Info log"))
        self.assert_any_log_match(re.escape(u"Warning log"))
        self.assert_any_log_match(re.escape(u"Error log"))
        self.assert_any_log_match(re.escape(u"Critical log"))
        self.show_logs()
예제 #6
0
    def test_change_level_and_get_msg(self):
        """ Test change log level

        :return:
        """
        # Use the default unit tests logger
        set_log_level(logging.DEBUG)
        self.clear_logs()
        self.logger_.debug("This message is emitted in DEBUG")
        self.assert_any_log_match("This message is emitted in DEBUG")

        set_log_level(logging.INFO)
        self.clear_logs()
        self.logger_.debug("This message will not be emitted")
        self.assert_no_log_match("This message will not be emitted")

        set_log_level(logging.WARNING)
        self.clear_logs()
        self.logger_.debug("This message will not be emitted")
        self.assert_no_log_match("This message will not be emitted")
        self.logger_.info("This message will not be emitted")
        self.assert_no_log_match("This message will not be emitted")