@@ -167,6 +167,40 @@ def test_simple_log_record_processor_shutdown(self):
167167 finished_logs = exporter .get_finished_logs ()
168168 self .assertEqual (len (finished_logs ), 0 )
169169
170+ def test_simple_log_record_processor_different_msg_types (self ):
171+ exporter = InMemoryLogExporter ()
172+ log_record_processor = BatchLogRecordProcessor (exporter )
173+
174+ provider = LoggerProvider ()
175+ provider .add_log_record_processor (log_record_processor )
176+
177+ logger = logging .getLogger ("different_msg_types" )
178+ logger .addHandler (LoggingHandler (logger_provider = provider ))
179+
180+ logger .warning ("warning message: %s" , "possible upcoming heatwave" )
181+ logger .error ("Very high rise in temperatures across the globe" )
182+ logger .critical ("Temperature hits high 420 C in Hyderabad" )
183+ logger .warning (["list" , "of" , "strings" ])
184+ logger .error ({"key" : "value" })
185+ log_record_processor .shutdown ()
186+
187+ finished_logs = exporter .get_finished_logs ()
188+ expected = [
189+ ("warning message: possible upcoming heatwave" , "WARNING" ),
190+ ("Very high rise in temperatures across the globe" , "ERROR" ),
191+ (
192+ "Temperature hits high 420 C in Hyderabad" ,
193+ "CRITICAL" ,
194+ ),
195+ (["list" , "of" , "strings" ], "WARNING" ),
196+ ({"key" : "value" }, "ERROR" )
197+ ]
198+ emitted = [
199+ (item .log_record .body , item .log_record .severity_text )
200+ for item in finished_logs
201+ ]
202+ self .assertEqual (expected , emitted )
203+
170204
171205class TestBatchLogRecordProcessor (ConcurrencyTestBase ):
172206 def test_emit_call_log_record (self ):
0 commit comments