# dotnet/runtime v9.0.5 Microsoft.Extensions.Logging.Console/src/SimpleConsoleFormatter.cs: the default two-line form
# The header carries the level, the category and the event id; the message follows on lines indented six spaces.
# captured: AddConsole() with no options, and with TimestampFormat "HH:mm:ss "
trce: MyApp.Db[0] ⇒ {"rule": "mel-header", "level": "trace", "leveled": true, "name": "MyApp.Db", "message": ""}
dbug: MyApp.Db[0] ⇒ {"rule": "mel-header", "level": "debug", "leveled": true, "name": "MyApp.Db", "message": ""}
info: MyApp.Db[0] ⇒ {"rule": "mel-header", "level": "info", "leveled": true, "name": "MyApp.Db", "message": ""}
warn: MyApp.Db[0] ⇒ {"rule": "mel-header", "level": "warn", "leveled": true, "name": "MyApp.Db", "message": ""}
fail: MyApp.Db[0] ⇒ {"rule": "mel-header", "level": "error", "leveled": true, "name": "MyApp.Db", "message": ""}
crit: MyApp.Db[0] ⇒ {"rule": "mel-header", "level": "critical", "leveled": true, "name": "MyApp.Db", "message": ""}
info: MyApp.Db[42] ⇒ {"rule": "mel-header", "level": "info", "name": "MyApp.Db", "message": ""}
17:23:36 trce: MyApp.Db[0] ⇒ {"rule": "mel-header", "level": "trace", "name": "MyApp.Db", "message": ""}
17:23:36 dbug: MyApp.Db[0] ⇒ {"rule": "mel-header", "level": "debug", "name": "MyApp.Db", "message": ""}
17:23:36 info: MyApp.Db[0] ⇒ {"rule": "mel-header", "level": "info", "name": "MyApp.Db", "message": ""}
17:23:36 warn: MyApp.Db[0] ⇒ {"rule": "mel-header", "level": "warn", "name": "MyApp.Db", "message": ""}
17:23:36 fail: MyApp.Db[0] ⇒ {"rule": "mel-header", "level": "error", "name": "MyApp.Db", "message": ""}
17:23:36 crit: MyApp.Db[0] ⇒ {"rule": "mel-header", "level": "critical", "name": "MyApp.Db", "message": ""}
17:23:36 info: MyApp.Db[42] ⇒ {"rule": "mel-header", "level": "info", "name": "MyApp.Db", "message": ""}
# the categories ASP.NET Core prints, and other timestamp formats
# constructed info: Microsoft.Hosting.Lifetime[14] ⇒ {"rule": "mel-header", "level": "info", "name": "Microsoft.Hosting.Lifetime", "message": ""}
# constructed warn: Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware[3] ⇒ {"rule": "mel-header", "level": "warn", "name": "Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware", "message": ""}
# constructed 2026-10-21 17:23:36 fail: Microsoft.AspNetCore.Server.Kestrel[13] ⇒ {"rule": "mel-header", "level": "error", "name": "Microsoft.AspNetCore.Server.Kestrel", "message": ""}
# constructed [17:23:36] crit: Microsoft.AspNetCore.Hosting.Diagnostics[6] ⇒ {"rule": "mel-header", "level": "critical", "name": "Microsoft.AspNetCore.Hosting.Diagnostics", "message": ""}
# the lines under a header, the single-line form, and lines that only look like a header
      trace message ⇒ {"rule": "plain", "level": "info", "leveled": false, "message": "      trace message"}
      System.InvalidOperationException: boom ⇒ {"rule": "plain", "level": "info", "leveled": false, "message": "      System.InvalidOperationException: boom"}
      => RequestId:42 ⇒ {"rule": "plain", "level": "info", "leveled": false, "message": "      => RequestId:42"}
info: MyApp.Db[0] info message ⇒ {"rule": "mel", "level": "info", "name": "MyApp.Db", "message": "info message"}
# constructed info: MyApp.Db ⇒ {"rule": "plain", "level": "info", "leveled": false, "message": "info: MyApp.Db"}
# constructed info: [0] ⇒ {"rule": "plain", "level": "info", "leveled": false, "message": "info: [0]"}
# constructed Info: MyApp.Db[0] ⇒ {"rule": "level-word", "level": "info", "message": "MyApp.Db[0]"}
# constructed note: MyApp.Db[0] ⇒ {"rule": "plain", "level": "info", "leveled": false, "message": "note: MyApp.Db[0]"}
# constructed info:MyApp.Db[0] ⇒ {"rule": "plain", "level": "info", "leveled": false, "message": "info:MyApp.Db[0]"}
# constructed values[0] ⇒ {"rule": "plain", "level": "info", "leveled": false, "message": "values[0]"}
