# esphome 2025.10 esphome/components/logger/log_buffer.h write_header: `[L][tag:NNN]`, the line printed
# `%03u`, then `[thread]` when the platform names one, then `: `. The letters are
# LOG_LEVEL_LETTER_CHARS: E W I C(onfig) D V, and VV for very verbose; CONFIG sits below INFO.
# `esphome logs` adds the host's `[HH:MM:SS]`.
[12:34:56][I][app:029]: Running through setup()... ⇒ {"rule": "esphome", "level": "info", "name": "app", "line": 29, "message": "Running through setup()...", "stamp": "12:34:56", "device_ns": null, "prefixed": true}
[12:34:56][C][wifi:037]: Setting up WiFi... ⇒ {"rule": "esphome", "level": "debug", "name": "wifi", "message": "Setting up WiFi..."}
[12:34:57][D][sensor:094]: 'Temperature': Sending state 23.50000 °C with 1 decimals of accuracy ⇒ {"rule": "esphome", "level": "debug", "name": "sensor", "message": "'Temperature': Sending state 23.50000 °C with 1 decimals of accuracy"}
[12:34:57][W][component:157]: Component wifi took a long time for an operation (0.52 s). ⇒ {"rule": "esphome", "level": "warn", "name": "component", "message": "Component wifi took a long time for an operation (0.52 s)."}
[12:34:57][E][component:164]: Component wifi is marked FAILED ⇒ {"rule": "esphome", "level": "error", "name": "component", "message": "Component wifi is marked FAILED"}
[12:34:58][V][api.service:123]: Sending device info ⇒ {"rule": "esphome", "level": "trace", "name": "api.service", "message": "Sending device info"}
[12:34:58][VV][api.service:123]: Sending raw frame ⇒ {"rule": "esphome", "level": "trace", "name": "api.service", "message": "Sending raw frame"}
[I][app:029]: Running through setup()... ⇒ {"rule": "esphome", "level": "info", "name": "app", "stamp": null, "message": "Running through setup()..."}
[E][wifi:1203]: Connecting failed ⇒ {"rule": "esphome", "level": "error", "name": "wifi", "message": "Connecting failed", "line": 1203}
[D][esp32.preferences:113]: Saving 1 preferences to flash... ⇒ {"rule": "esphome", "level": "debug", "name": "esp32.preferences", "message": "Saving 1 preferences to flash..."}
[C][uart.arduino_esp32:077]: UART Bus 0: ⇒ {"rule": "esphome", "level": "debug", "name": "uart.arduino_esp32", "message": "UART Bus 0:"}
[D][binary_sensor:036]: 'Button': Sending state ON ⇒ {"rule": "esphome", "level": "debug", "name": "binary_sensor", "message": "'Button': Sending state ON"}
[W][api.connection:123]: Home Assistant 2024.1.0 (192.168.1.10): Connection closed ⇒ {"rule": "esphome", "level": "warn", "name": "api.connection", "message": "Home Assistant 2024.1.0 (192.168.1.10): Connection closed"}
# constructed [12:34:56.123][I][app:029]: a stamp with milliseconds ⇒ {"rule": "esphome", "level": "info", "name": "app", "stamp": "12:34:56.123", "message": "a stamp with milliseconds"}
# constructed [I][app:029][loopTask]: a thread name ⇒ {"rule": "esphome", "level": "info", "name": "app", "message": "a thread name"}
# constructed [D][adc:091]: 'Battery': Got voltage=3.71V ⇒ {"rule": "esphome+kv", "level": "debug", "name": "adc", "message": "'Battery': Got voltage=3.71V", "values": [["voltage", 3.71, "V"]]}
# constructed [X][app:029]: an unknown letter ⇒ {"rule": "plain", "level": "info", "message": "[X][app:029]: an unknown letter"}
# constructed [I][app:29]: a line of two digits ⇒ {"rule": "plain", "level": "info", "message": "[I][app:29]: a line of two digits"}
# constructed [I][app]: no line ⇒ {"rule": "plain", "level": "info", "message": "[I][app]: no line"}
# constructed [I] [app:029]: a space between the brackets ⇒ {"rule": "plain", "level": "info", "message": "[I] [app:029]: a space between the brackets"}
# constructed [i][app:029]: a lower-case letter ⇒ {"rule": "plain", "level": "info", "message": "[i][app:029]: a lower-case letter"}
# constructed [I][app:029] no colon ⇒ {"rule": "plain", "level": "info", "message": "[I][app:029] no colon"}
# constructed [I][app:029]:no space ⇒ {"rule": "plain", "level": "info", "message": "[I][app:029]:no space"}
# constructed [12:34][I][app:029]: a time without seconds ⇒ {"rule": "plain", "level": "info", "message": "[12:34][I][app:029]: a time without seconds"}
[  1065][E][sd_diskio.cpp:807] sdcard_mount(): f_mount failed ⇒ {"rule": "arduino-esp32", "level": "error", "name": "sd_diskio", "message": "[sd_diskio.cpp:807] sdcard_mount(): f_mount failed"}
[00:00:01.000,000] <inf> main: ready ⇒ {"rule": "zephyr", "level": "info", "name": "main", "message": "main: ready"}
E (588) SPIFFS: mount failed, -10025 ⇒ {"rule": "esp-idf", "level": "error", "name": "SPIFFS", "message": "SPIFFS: mount failed, -10025"}
