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))
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)
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))
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")
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()
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")