def test_rfc3339_timezone_wrong_directive(self): self.formatter = rlog.RFC3339Formatter( fmt='[%(asctime)s] %(levelname)s: %(check_name)s: %(message)s', datefmt='%FT%T:z') self.handler.setFormatter(self.formatter) self.logger_without_check.info('foo') assert self.found_in_logfile(':z')
def test_logger_dynamic_attributes(logfile, logger_with_check): formatter = rlog.RFC3339Formatter('%(check_custom)s|%(check_custom_list)s|' '%(check_foo)s|%(check_custom_dict)s') logger_with_check.logger.handlers[0].setFormatter(formatter) logger_with_check.info('xxx') assert _pattern_in_logfile( r'hello extras\|custom,3.0,\["hello", "world"\]\|null\|' r'{"a": 1, "b": 2}', logfile)
def test_logger_dynamic_attributes_deferrables(logfile, logger_with_check): formatter = rlog.RFC3339Formatter( '%(check_deferred)s|%(check_deferred_error)s') logger_with_check.logger.handlers[0].setFormatter(formatter) logger_with_check.info('xxx') assert _pattern_in_logfile(r'null\|null', logfile) # Evaluate the deferrable and log again logger_with_check.check.deferred.evaluate() logger_with_check.info('xxx') assert _pattern_in_logfile(r'"hello"\|null', logfile)
def test_rfc3339_timezone_extension(self): self.formatter = rlog.RFC3339Formatter( fmt=('[%(asctime)s] %(levelname)s: %(check_name)s: ' 'ct:%(check_job_completion_time)s: %(message)s'), datefmt='%FT%T%:z') self.handler.setFormatter(self.formatter) self.logger_with_check.info('foo') self.logger_without_check.info('foo') assert not self.found_in_logfile(r'%%:z') assert self.found_in_logfile(r'\[.+(\+|-)\d\d:\d\d\]') assert self.found_in_logfile(r'ct:.+(\+|-)\d\d:\d\d')
def setUp(self): tmpfd, self.logfile = tempfile.mkstemp() os.close(tmpfd) self.logger = rlog.Logger('reframe') self.handler = logging.handlers.RotatingFileHandler(self.logfile) self.formatter = rlog.RFC3339Formatter( fmt='[%(asctime)s] %(levelname)s: %(check_name)s: %(message)s', datefmt='%FT%T') self.handler.setFormatter(self.formatter) self.logger.addHandler(self.handler) # Use the logger adapter that defines check_name self.logger_without_check = rlog.LoggerAdapter(self.logger) # Logger adapter with an associated check self.logger_with_check = rlog.LoggerAdapter(self.logger, _setup_fake_check())