# Spring Boot v3.5.0 logback/defaults.xml CONSOLE_LOG_PATTERN and FILE_LOG_PATTERN; log4j2/log4j2.xml is the same shape
# captured: Spring Boot 3.5.0 console, without and with spring.application.name
2026-10-21T17:21:16.587-07:00  INFO 54916 --- [           main] com.example.app.OrderService             : info message ⇒ {"rule": "spring-boot", "level": "info", "name": "com.example.app.OrderService", "message": "info message"}
2026-10-21T17:21:16.587-07:00  WARN 54916 --- [           main] com.example.app.OrderService             : warning message ⇒ {"rule": "spring-boot", "level": "warn", "name": "com.example.app.OrderService", "message": "warning message"}
2026-10-21T17:21:16.587-07:00 ERROR 54916 --- [           main] com.example.app.OrderService             : error message ⇒ {"rule": "spring-boot", "level": "error", "name": "com.example.app.OrderService", "message": "error message"}
2026-10-21T17:21:16.587-07:00 ERROR 54916 --- [           main] com.example.app.OrderService             : failed with exception ⇒ {"rule": "spring-boot", "level": "error", "name": "com.example.app.OrderService", "message": "failed with exception"}
2026-10-21T17:21:16.588-07:00  INFO 54916 --- [           main] com.example.app.OrderService             : two ⇒ {"rule": "spring-boot", "level": "info", "name": "com.example.app.OrderService", "message": "two"}
2026-10-21T17:21:16.588-07:00  INFO 54916 --- [           main] com.example.app.OrderService             : with mdc ⇒ {"rule": "spring-boot", "level": "info", "name": "com.example.app.OrderService", "message": "with mdc"}
2026-10-21T17:21:26.647-07:00  INFO 55199 --- [demo] [           main] SpringDemo                               : No active profile set, falling back to 1 default profile: "default" ⇒ {"rule": "spring-boot", "level": "info", "name": "SpringDemo", "message": "No active profile set, falling back to 1 default profile: \"default\""}
2026-10-21T17:21:26.833-07:00  INFO 55199 --- [demo] [           main] SpringDemo                               : Started SpringDemo in 0.338 seconds (process running for 0.67) ⇒ {"rule": "spring-boot", "level": "info", "name": "SpringDemo", "message": "Started SpringDemo in 0.338 seconds (process running for 0.67)"}
2026-10-21T17:21:26.835-07:00 ERROR 55199 --- [demo] [           main] com.example.app.OrderService             : error message ⇒ {"rule": "spring-boot", "level": "error", "name": "com.example.app.OrderService", "message": "error message"}
# captured: Spring Boot 3.5.0 file, whose thread is not padded
2026-10-21T17:21:26.647-07:00  INFO 55199 --- [demo] [main] SpringDemo                               : No active profile set, falling back to 1 default profile: "default" ⇒ {"rule": "spring-boot", "level": "info", "name": "SpringDemo", "message": "No active profile set, falling back to 1 default profile: \"default\""}
2026-10-21T17:21:26.835-07:00  WARN 55199 --- [demo] [main] com.example.app.OrderService             : warning message ⇒ {"rule": "spring-boot", "level": "warn", "name": "com.example.app.OrderService", "message": "warning message"}
2026-10-21T17:21:26.835-07:00 ERROR 55199 --- [demo] [main] com.example.app.OrderService             : failed with exception ⇒ {"rule": "spring-boot", "level": "error", "name": "com.example.app.OrderService", "message": "failed with exception"}
2026-10-21T17:21:26.836-07:00  INFO 55199 --- [demo] [main] com.example.app.OrderService             : with mdc ⇒ {"rule": "spring-boot", "level": "info", "name": "com.example.app.OrderService", "message": "with mdc"}
# the application group, a correlation id, a zone without a colon, and the levels the capture lacks
# constructed 2026-10-21T17:21:16.587Z DEBUG 54916 --- [acme] [billing] [           main] o.s.b.w.e.tomcat.TomcatWebServer         : Tomcat started on port 8080 ⇒ {"rule": "spring-boot", "level": "debug", "name": "o.s.b.w.e.tomcat.TomcatWebServer", "message": "Tomcat started on port 8080"}
# constructed 2026-10-21T17:21:16.587-0700 TRACE 54916 --- [acme] [         task-1] [6618a4de8f36bf71c60b2982181e6d36-c66827472589372a] c.a.billing.InvoiceService               : invoice sent ⇒ {"rule": "spring-boot", "level": "trace", "name": "c.a.billing.InvoiceService", "message": "invoice sent"}
# constructed 2026-10-21T17:21:16.587-07:00 FATAL 54916 --- [           main] c.a.Main                                 : gave up ⇒ {"rule": "spring-boot", "level": "critical", "name": "c.a.Main", "message": "gave up"}
# the logger fills its 40 columns, and the message holds its own colon
# constructed 2026-10-21T17:21:16.587-07:00  INFO 54916 --- [           main] e.c.o.s.c.c.ConsumerServiceWithALongName : received: 3 items ⇒ {"rule": "spring-boot", "level": "info", "name": "e.c.o.s.c.c.ConsumerServiceWithALongName", "message": "received: 3 items"}
# Spring Boot 2.x prints the stamp with a space and no zone
# constructed 2019-03-05 10:57:51.112  INFO 45469 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/9.0.16 ⇒ {"rule": "spring-boot", "level": "info", "name": "org.apache.catalina.core.StandardEngine", "message": "Starting Servlet Engine: Apache Tomcat/9.0.16"}
# constructed 2026-10-21T17:21:16.587-07:00  INFO 54916 --- [           main] c.a.Pump                                 : rail=13.65V ⇒ {"rule": "spring-boot+kv", "level": "info", "name": "c.a.Pump", "message": "rail=13.65V", "values": [["rail", 13.65, "V"]]}
# lines a Spring Boot record prints after its own, and lines of other layouts
java.lang.RuntimeException: boom ⇒ {"rule": "plain", "level": "info", "leveled": false, "message": "java.lang.RuntimeException: boom"}
line message ⇒ {"rule": "plain", "level": "info", "leveled": false, "message": "line message"}
# constructed 2026-10-21 17:35:09.989 [main] INFO  app.db - info message ⇒ {"rule": "logback", "level": "info", "name": "app.db", "message": "info message"}
# constructed 2026-10-21T17:21:16.587-07:00 INFO app.db - no pid marker ⇒ {"rule": "layout", "level": "info", "name": "app.db", "message": "no pid marker"}
# constructed 2026-10-21T17:21:16.587-07:00  info 54916 --- [           main] c.a.Main                                 : lower case ⇒ {"rule": "plain", "level": "info", "leveled": false, "message": "2026-10-21T17:21:16.587-07:00  info 54916 --- [           main] c.a.Main                                 : lower case"}
# constructed 2026-10-21T17:21:16.587-07:00  NOTICE 54916 --- [           main] c.a.Main                                 : unknown word ⇒ {"rule": "layout", "level": "info", "leveled": true, "message": "54916 --- [           main] c.a.Main                                 : unknown word"}
# constructed the build --- [main] failed : at step 3 ⇒ {"rule": "plain", "level": "info", "leveled": false, "message": "the build --- [main] failed : at step 3"}
# constructed 2026-10-21T17:21:16.587-07:00 54916 --- [           main] c.a.Main                                 : no level ⇒ {"rule": "plain", "level": "info", "leveled": false, "message": "2026-10-21T17:21:16.587-07:00 54916 --- [           main] c.a.Main                                 : no level"}
# constructed 2026-10-21T17:21:16.587-07:00  INFO 54916 --- [           main] c.a.Main ⇒ {"rule": "layout", "level": "info", "message": "54916 --- [           main] c.a.Main"}
# constructed --- [           main] c.a.Main                                 : no stamp ⇒ {"rule": "plain", "level": "info", "leveled": false, "message": "--- [           main] c.a.Main                                 : no stamp"}
