@@ -451,6 +451,44 @@ class LoggingTest: XCTestCase {
451
451
XCTAssertEqual ( interceptStream. strings. count, 1 )
452
452
}
453
453
454
+ func testStreamLogHandlerOutputFormat( ) {
455
+ let interceptStream = InterceptStream ( )
456
+ let label = " testLabel "
457
+ LoggingSystem . bootstrapInternal { _ in
458
+ StreamLogHandler ( label: label, stream: interceptStream)
459
+ }
460
+ let log = Logger ( label: label)
461
+
462
+ let testString = " my message is better than yours "
463
+ log. critical ( " \( testString) " )
464
+
465
+ let pattern = " ^ \\ d{4}- \\ d{2}- \\ d{2}T \\ d{2}: \\ d{2}: \\ d{2}( \\ +|-) \\ d{4} \\ s \( Logger . Level. critical) \\ s \( label) \\ s: \\ s \( testString) $ "
466
+
467
+ let messageSucceeded = interceptStream. interceptedText? . trimmingCharacters ( in: . whitespacesAndNewlines) . range ( of: pattern, options: . regularExpression) != nil
468
+
469
+ XCTAssertTrue ( messageSucceeded)
470
+ XCTAssertEqual ( interceptStream. strings. count, 1 )
471
+ }
472
+
473
+ func testStreamLogHandlerOutputFormatWithMetaData( ) {
474
+ let interceptStream = InterceptStream ( )
475
+ let label = " testLabel "
476
+ LoggingSystem . bootstrapInternal { _ in
477
+ StreamLogHandler ( label: label, stream: interceptStream)
478
+ }
479
+ let log = Logger ( label: label)
480
+
481
+ let testString = " my message is better than yours "
482
+ log. critical ( " \( testString) " , metadata: [ " test " : " test " ] )
483
+
484
+ let pattern = " ^ \\ d{4}- \\ d{2}- \\ d{2}T \\ d{2}: \\ d{2}: \\ d{2}( \\ +|-) \\ d{4} \\ s \( Logger . Level. critical) \\ s \( label) \\ s: \\ stest=test \\ s \( testString) $ "
485
+
486
+ let messageSucceeded = interceptStream. interceptedText? . trimmingCharacters ( in: . whitespacesAndNewlines) . range ( of: pattern, options: . regularExpression) != nil
487
+
488
+ XCTAssertTrue ( messageSucceeded)
489
+ XCTAssertEqual ( interceptStream. strings. count, 1 )
490
+ }
491
+
454
492
func testStdioOutputStreamFlush( ) {
455
493
// flush on every statement
456
494
self . withWriteReadFDsAndReadBuffer { writeFD, readFD, readBuffer in
0 commit comments