# https://github.com/tstack/lnav/blob/master/src/formats/logcat_log.json
06-06 14:26:44.749 13850 13850 D ScreenSharingSample: MediaProjection.Callback#onStop() called ⇒ {"rule": "logcat", "level": "debug", "name": "ScreenSharingSample", "message": "MediaProjection.Callback#onStop() called", "values": [], "prefixed": true, "device_ns": null}
05-26 14:57:03.870 V/Configuration( 1766): Updating configuration, locales updated from [] to [en_US] ⇒ {"rule": "logcat", "level": "trace", "name": "Configuration", "message": "Updating configuration, locales updated from [] to [en_US]", "values": [], "prefixed": true, "device_ns": null}
05-21 15:05:52.808  1047  1116  1240 E FMQ     : MQDescriptor is invalid or queue size is 0. ⇒ {"rule": "logcat", "level": "error", "name": "FMQ", "message": "MQDescriptor is invalid or queue size is 0.", "values": [], "prefixed": true, "device_ns": null}
05-26 11:18:41.509  1000 23402 23402 V VirtualCameraSession: processCaptureRequest: CaptureRequest { frameNumber:102 }    ⇒ {"rule": "logcat", "level": "trace", "name": "VirtualCameraSession", "message": "processCaptureRequest: CaptureRequest { frameNumber:102 }   ", "values": [], "prefixed": true, "device_ns": null}
# threadtime, the default format
# constructed 05-21 15:05:52.808  1116  1240 V pump: level V ⇒ {"rule": "logcat", "level": "trace", "name": "pump", "message": "level V", "values": [], "prefixed": true, "device_ns": null}
# constructed 05-21 15:05:52.808  1116  1240 D pump: level D ⇒ {"rule": "logcat", "level": "debug", "name": "pump", "message": "level D", "values": [], "prefixed": true, "device_ns": null}
# constructed 05-21 15:05:52.808  1116  1240 I pump: level I ⇒ {"rule": "logcat", "level": "info", "name": "pump", "message": "level I", "values": [], "prefixed": true, "device_ns": null}
# constructed 05-21 15:05:52.808  1116  1240 W pump: level W ⇒ {"rule": "logcat", "level": "warn", "name": "pump", "message": "level W", "values": [], "prefixed": true, "device_ns": null}
# constructed 05-21 15:05:52.808  1116  1240 E pump: level E ⇒ {"rule": "logcat", "level": "error", "name": "pump", "message": "level E", "values": [], "prefixed": true, "device_ns": null}
# constructed 05-21 15:05:52.808  1116  1240 F pump: level F ⇒ {"rule": "logcat", "level": "critical", "name": "pump", "message": "level F", "values": [], "prefixed": true, "device_ns": null}
# constructed 05-21 15:05:52.808  1116  1240 A pump: level A ⇒ {"rule": "logcat", "level": "critical", "name": "pump", "message": "level A", "values": [], "prefixed": true, "device_ns": null}
# constructed 05-21 15:05:52.808 11160 12400 I pump: wide ids ⇒ {"rule": "logcat", "level": "info", "name": "pump", "message": "wide ids", "values": [], "prefixed": true, "device_ns": null}
# constructed 05-21 15:05:52.808  1116  1240 I ActivityManager: Start proc com.acme.app for service ⇒ {"rule": "logcat", "level": "info", "name": "ActivityManager", "message": "Start proc com.acme.app for service", "values": [], "prefixed": true, "device_ns": null}
# constructed 05-21 15:05:52.808  1116  1240 W wpa_supplicant: underscore tag ⇒ {"rule": "logcat", "level": "warn", "name": "wpa_supplicant", "message": "underscore tag", "values": [], "prefixed": true, "device_ns": null}
# constructed 05-21 15:05:52.808  1116  1240 E System.err: dotted tag ⇒ {"rule": "logcat", "level": "error", "name": "System.err", "message": "dotted tag", "values": [], "prefixed": true, "device_ns": null}
# constructed 05-21 15:05:52.808  1116  1240 D can-bus: dashed tag ⇒ {"rule": "logcat", "level": "debug", "name": "can-bus", "message": "dashed tag", "values": [], "prefixed": true, "device_ns": null}
# constructed 05-21 15:05:52.808  1116  1240 E FMQ     : padded tag ⇒ {"rule": "logcat", "level": "error", "name": "FMQ", "message": "padded tag", "values": [], "prefixed": true, "device_ns": null}
# constructed 05-21 15:05:52.808  1116  1240 I Battery: level=87 temp=31.5C ⇒ {"rule": "logcat+kv", "level": "info", "name": "Battery", "message": "level=87 temp=31.5C", "values": [["level", 87, null], ["temp", 31.5, "C"]], "prefixed": true, "device_ns": null}
# constructed 05-21 15:05:52.808  1116  1240 E AndroidRuntime: FATAL EXCEPTION: main ⇒ {"rule": "logcat", "level": "error", "name": "AndroidRuntime", "message": "FATAL EXCEPTION: main", "values": [], "prefixed": true, "device_ns": null}
# constructed 05-21 15:05:52.808  1116  1240 I pump:  ⇒ {"rule": "logcat", "level": "info", "name": "pump", "message": "", "values": [], "prefixed": true, "device_ns": null}
# constructed 05-21 15:05:52.808  1116  1240 I pump: warning: not the level ⇒ {"rule": "logcat", "level": "info", "name": "pump", "message": "warning: not the level", "values": [], "prefixed": true, "device_ns": null}
# constructed 05-21 15:05:52.808  1116  1240 I pump: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ⇒ {"rule": "logcat", "level": "info", "name": "pump", "message": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "values": [], "prefixed": true, "device_ns": null}
# brief format
# constructed I/ActivityManager(  585): Start proc com.acme.app ⇒ {"rule": "logcat", "level": "info", "name": "ActivityManager", "message": "Start proc com.acme.app", "values": [], "prefixed": true, "device_ns": null}
# constructed E/AndroidRuntime(12345): FATAL EXCEPTION: main ⇒ {"rule": "logcat", "level": "error", "name": "AndroidRuntime", "message": "FATAL EXCEPTION: main", "values": [], "prefixed": true, "device_ns": null}
# constructed W/pump(    1): padded pid ⇒ {"rule": "logcat", "level": "warn", "name": "pump", "message": "padded pid", "values": [], "prefixed": true, "device_ns": null}
# constructed D/can-bus(7): short pid ⇒ {"rule": "logcat", "level": "debug", "name": "can-bus", "message": "short pid", "values": [], "prefixed": true, "device_ns": null}
# constructed I/pump( 12):  ⇒ {"rule": "logcat", "level": "info", "name": "pump", "message": "", "values": [], "prefixed": true, "device_ns": null}
# constructed I/pump( 12): rail=13.65V ⇒ {"rule": "logcat+kv", "level": "info", "name": "pump", "message": "rail=13.65V", "values": [["rail", 13.65, "V"]], "prefixed": true, "device_ns": null}
# with the year, adb logcat -v year
# constructed 2026-05-21 15:05:52.808  1116  1240 E pump: year in the stamp ⇒ {"rule": "logcat", "level": "error", "name": "pump", "message": "year in the stamp", "values": [], "prefixed": true, "device_ns": null}
--------- beginning of main ⇒ {"rule": "plain", "level": "info", "message": "--------- beginning of main"}
--------- beginning of system ⇒ {"rule": "plain", "level": "info", "message": "--------- beginning of system"}
# constructed 05-21 15:05:52.808  1116  1240 Q pump: unknown level letter ⇒ {"rule": "plain", "level": "info", "message": "05-21 15:05:52.808  1116  1240 Q pump: unknown level letter"}
# constructed 05-21 15:05:52.808  1116  1240 i pump: lower case level letter ⇒ {"rule": "plain", "level": "info", "message": "05-21 15:05:52.808  1116  1240 i pump: lower case level letter"}
# constructed 05-21 15:05:52.808  1116  1240 E pump missing colon ⇒ {"rule": "plain", "level": "info", "message": "05-21 15:05:52.808  1116  1240 E pump missing colon"}
# constructed 05-21 15:05:52.808  1116  1240 E pump:no space after the colon ⇒ {"rule": "plain", "level": "info", "message": "05-21 15:05:52.808  1116  1240 E pump:no space after the colon"}
# constructed 05-21 15:05:52 1116 1240 E pump: no milliseconds ⇒ {"rule": "plain", "level": "info", "message": "05-21 15:05:52 1116 1240 E pump: no milliseconds"}
# constructed 05-21 15:05:52.808 1116 E pump: no thread id ⇒ {"rule": "plain", "level": "info", "message": "05-21 15:05:52.808 1116 E pump: no thread id"}
# constructed E/pump: no pid ⇒ {"rule": "logcat", "level": "error", "name": "pump", "message": "no pid", "values": [], "prefixed": true, "device_ns": null}
# constructed E/pump(abc): pid is not a number ⇒ {"rule": "plain", "level": "info", "message": "E/pump(abc): pid is not a number"}
# constructed E/pump( 12) missing colon ⇒ {"rule": "plain", "level": "info", "message": "E/pump( 12) missing colon"}
# constructed Q/pump( 12): unknown level letter ⇒ {"rule": "plain", "level": "info", "message": "Q/pump( 12): unknown level letter"}
# constructed e/pump( 12): lower case level letter ⇒ {"rule": "plain", "level": "info", "message": "e/pump( 12): lower case level letter"}
# constructed The E/pump( 12): inside a sentence ⇒ {"rule": "plain", "level": "info", "message": "The E/pump( 12): inside a sentence"}
# constructed May 21 15:05:52 bench-1 pump[12]: syslog format ⇒ {"rule": "syslog", "level": "info", "name": "pump", "message": "syslog format"}
# constructed [    1.234567] usb 1-1: new device ⇒ {"rule": "linux", "level": "info", "name": "kernel", "message": "usb 1-1: new device"}
# AOSP platform/system/logging android-16.0.0_r4 liblog/logprint.cpp android_log_formatLogLine:
# -v tag `%c/%-8.*s: `, process `%c(%s%5d) ` and `  (%.*s)`, thread `%c(%s%5d:%5d) `; the stamp's
# modifiers usec, nsec, zone, UTC, year, epoch `%19lld` and monotonic `%6lld`; uid `%5s:` or `%5d:`
# before the pid, a space in threadtime
# constructed V/ActivityManager: verbose text ⇒ {"rule": "logcat", "level": "trace", "name": "ActivityManager", "message": "verbose text", "values": [], "prefixed": true, "device_ns": null}
# constructed D/Foo     : debug text ⇒ {"rule": "logcat", "level": "debug", "name": "Foo", "message": "debug text", "values": [], "prefixed": true, "device_ns": null}
# constructed I( 1234) Start proc 1234:com.example/u0a123  (ActivityManager) ⇒ {"rule": "logcat", "level": "info", "name": "ActivityManager", "message": "Start proc 1234:com.example/u0a123", "values": [], "prefixed": true, "device_ns": null}
# constructed W( 1234) warn text  (Foo) ⇒ {"rule": "logcat", "level": "warn", "name": "Foo", "message": "warn text", "values": [], "prefixed": true, "device_ns": null}
# constructed E( 1234: 5678) error text ⇒ {"rule": "logcat", "level": "error", "name": "", "message": "error text", "values": [], "prefixed": true, "device_ns": null}
# constructed F( 1234: 5678) fatal text ⇒ {"rule": "logcat", "level": "critical", "name": "", "message": "fatal text", "values": [], "prefixed": true, "device_ns": null}
# constructed 10-21 14:03:01.123456  1234  5678 I Foo     : usec modifier ⇒ {"rule": "logcat", "level": "info", "name": "Foo", "message": "usec modifier", "values": [], "prefixed": true, "device_ns": null}
# constructed 10-21 14:03:01.123456789  1234  5678 I Foo     : nsec modifier ⇒ {"rule": "logcat", "level": "info", "name": "Foo", "message": "nsec modifier", "values": [], "prefixed": true, "device_ns": null}
# constructed 10-21 14:03:01.123 -0700  1234  5678 I Foo     : zone modifier ⇒ {"rule": "logcat", "level": "info", "name": "Foo", "message": "zone modifier", "values": [], "prefixed": true, "device_ns": null}
# constructed 10-21 21:03:01.123 +0000  1234  5678 I Foo     : UTC modifier ⇒ {"rule": "logcat", "level": "info", "name": "Foo", "message": "UTC modifier", "values": [], "prefixed": true, "device_ns": null}
# constructed          1729519381.123  1234  5678 I Foo     : epoch modifier ⇒ {"rule": "logcat", "level": "info", "name": "Foo", "message": "epoch modifier", "values": [], "prefixed": true, "device_ns": null}
# constructed  12345.123  1234  5678 I Foo     : monotonic modifier ⇒ {"rule": "logcat", "level": "info", "name": "Foo", "message": "monotonic modifier", "values": [], "prefixed": true, "device_ns": 12345123000000}
# constructed   1234.500  1234  5678 W Foo     : monotonic under a day ⇒ {"rule": "logcat", "level": "warn", "name": "Foo", "message": "monotonic under a day", "values": [], "prefixed": true, "device_ns": 1234500000000}
# constructed I/Foo     (10123: 1234): brief with uid ⇒ {"rule": "logcat", "level": "info", "name": "Foo", "message": "brief with uid", "values": [], "prefixed": true, "device_ns": null}
# constructed 10-21 14:03:01.123 I/Foo     (10123: 1234): time with uid ⇒ {"rule": "logcat", "level": "info", "name": "Foo", "message": "time with uid", "values": [], "prefixed": true, "device_ns": null}
# constructed 10-21 14:03:01.123 I/Foo     ( root: 1234): time with a user name ⇒ {"rule": "logcat", "level": "info", "name": "Foo", "message": "time with a user name", "values": [], "prefixed": true, "device_ns": null}
# constructed I(10123: 1234) process with uid  (Foo) ⇒ {"rule": "logcat", "level": "info", "name": "Foo", "message": "process with uid", "values": [], "prefixed": true, "device_ns": null}
# constructed I(10123: 1234: 5678) thread with uid ⇒ {"rule": "logcat", "level": "info", "name": "", "message": "thread with uid", "values": [], "prefixed": true, "device_ns": null}
# constructed 2026-10-21 14:03:01.123456 -0700  1234  5678 E Foo     : year, usec and zone ⇒ {"rule": "logcat", "level": "error", "name": "Foo", "message": "year, usec and zone", "values": [], "prefixed": true, "device_ns": null}
# constructed          1729519381.123 I/Foo     ( 1234): time with epoch ⇒ {"rule": "logcat", "level": "info", "name": "Foo", "message": "time with epoch", "values": [], "prefixed": true, "device_ns": null}
# constructed 05-21 20:54:20.971  root  1215  1215 W [18:54:20.964683][dhd][wlan]dhd_dbg_verboselog_printf: Log print water mark is reached ⇒ {"rule": "logcat", "level": "warn", "name": "[18:54:20.964683][dhd][wlan]dhd_dbg_verboselog_printf", "message": "Log print water mark is reached", "values": [], "prefixed": true, "device_ns": null}
# constructed I( 1234) process without the tag ⇒ {"rule": "plain", "level": "info", "message": "I( 1234) process without the tag"}
# constructed I(abc) pid is not a number  (Foo) ⇒ {"rule": "plain", "level": "info", "message": "I(abc) pid is not a number  (Foo)"}
# constructed I( 1234 ) space before the paren  (Foo) ⇒ {"rule": "plain", "level": "info", "message": "I( 1234 ) space before the paren  (Foo)"}
# constructed 12345.123  1234  5678 I Foo     : monotonic narrower than six is not printed ⇒ {"rule": "plain", "level": "info", "message": "12345.123  1234  5678 I Foo     : monotonic narrower than six is not printed"}
# constructed 10-21 14:03:01.1234  1234  5678 I Foo     : four fraction digits ⇒ {"rule": "plain", "level": "info", "message": "10-21 14:03:01.1234  1234  5678 I Foo     : four fraction digits"}
# constructed 10-21 14:03:01.123 -07:00  1234  5678 I Foo     : zone with a colon ⇒ {"rule": "plain", "level": "info", "message": "10-21 14:03:01.123 -07:00  1234  5678 I Foo     : zone with a colon"}
