diff --git a/opentelemetry-sdk/tests/logs/test_export.py b/opentelemetry-sdk/tests/logs/test_export.py index d48dcf8e24..43d9201077 100644 --- a/opentelemetry-sdk/tests/logs/test_export.py +++ b/opentelemetry-sdk/tests/logs/test_export.py @@ -207,6 +207,45 @@ def test_simple_log_record_processor_different_msg_types(self): ] self.assertEqual(expected, emitted) + def test_simple_log_record_processor_different_msg_types_with_formatter(self): + self.maxDiff = None + exporter = InMemoryLogExporter() + log_record_processor = BatchLogRecordProcessor(exporter) + + provider = LoggerProvider() + provider.add_log_record_processor(log_record_processor) + + logger = logging.getLogger("different_msg_types") + handler = LoggingHandler(logger_provider=provider) + handler.setFormatter(logging.Formatter( + "%(name)s - %(levelname)s - %(message)s" + )) + logger.addHandler(handler) + + logger.warning("warning message: %s", "possible upcoming heatwave") + logger.error("Very high rise in temperatures across the globe") + logger.critical("Temperature hits high 420 C in Hyderabad") + logger.warning(["list", "of", "strings"]) + logger.error({"key": "value"}) + log_record_processor.shutdown() + + finished_logs = exporter.get_finished_logs() + expected = [ + ("different_msg_types - WARNING - warning message: possible upcoming heatwave", "WARN"), + ("different_msg_types - ERROR - Very high rise in temperatures across the globe", "ERROR"), + ( + "different_msg_types - CRITICAL - Temperature hits high 420 C in Hyderabad", + "CRITICAL", + ), + ("different_msg_types - WARNING - ['list', 'of', 'strings']", "WARN"), + ("different_msg_types - ERROR - {'key': 'value'}", "ERROR"), + ] + emitted = [ + (item.log_record.body, item.log_record.severity_text) + for item in finished_logs + ] + self.assertEqual(expected, emitted) + class TestBatchLogRecordProcessor(ConcurrencyTestBase): def test_emit_call_log_record(self):