# esp-idf docs/en/api-reference/system/log.rst and examples/*/README.md
I (56) boot: chip revision: v3.0 ⇒ {"rule": "esp-idf", "level": "info", "name": "boot", "device_ns": 56000000, "message": "boot: chip revision: v3.0", "prefixed": true, "values": []}
I (112500) MyModule: Baud rate error 1.5%. Requested: 115200 baud, actual: 116928 baud ⇒ {"rule": "esp-idf", "level": "info", "name": "MyModule", "device_ns": 112500000000, "message": "MyModule: Baud rate error 1.5%. Requested: 115200 baud, actual: 116928 baud", "values": []}
W (112500) MyModule: Early log message 1 ⇒ {"rule": "esp-idf", "level": "warn", "name": "MyModule", "message": "MyModule: Early log message 1"}
E (588) SPIFFS: mount failed, -10025 ⇒ {"rule": "esp-idf", "level": "error", "name": "SPIFFS", "device_ns": 588000000, "message": "SPIFFS: mount failed, -10025"}
E (124) esp_core_dump_flash: Core dump flash config is corrupted! CRC=0x7bd5c66f instead of 0x0 ⇒ {"rule": "esp-idf", "level": "error", "name": "esp_core_dump_flash", "message": "esp_core_dump_flash: Core dump flash config is corrupted! CRC=0x7bd5c66f instead of 0x0", "values": []}
I (599) wifi: wifi driver task: 3ffc08b4, prio:23, stack:3584, core=0 ⇒ {"rule": "esp-idf+kv", "level": "info", "name": "wifi", "message": "wifi: wifi driver task: 3ffc08b4, prio:23, stack:3584, core=0", "values": [["core", 0, null]]}
I (146929) deep_sleep: Enabling timer wakeup, timeout=1000000us ⇒ {"rule": "esp-idf+kv", "level": "info", "name": "deep_sleep", "device_ns": 146929000000, "message": "deep_sleep: Enabling timer wakeup, timeout=1000000us", "values": [["timeout", 1000000, "us"]]}
I (1029) wifi: AP's beacon interval = 102400 us, DTIM period = 3 ⇒ {"rule": "esp-idf", "level": "info", "name": "wifi", "message": "wifi: AP's beacon interval = 102400 us, DTIM period = 3", "values": []}
I (2089) wifi station: got ip:192.168.77.89 ⇒ {"rule": "esp-idf", "level": "info", "name": "wifi station", "message": "wifi station: got ip:192.168.77.89", "values": []}
I (1324) ADC_ONESHOT: ADC1 Channel[3] Cali Voltage: 559 mV ⇒ {"rule": "esp-idf", "level": "info", "name": "ADC_ONESHOT", "message": "ADC_ONESHOT: ADC1 Channel[3] Cali Voltage: 559 mV", "values": []}
I (1072047) cmd_i2ctools: Write OK ⇒ {"rule": "esp-idf", "level": "info", "name": "cmd_i2ctools", "device_ns": 1072047000000, "message": "cmd_i2ctools: Write OK"}
I (1889) wifi: state: auth -> init (200) ⇒ {"rule": "esp-idf", "level": "info", "name": "wifi", "message": "wifi: state: auth -> init (200)"}
I (759) phy: phy_version: 4180, cb3948e, Sep 12 2019, 16:39:13, 0, 0 ⇒ {"rule": "esp-idf", "level": "info", "name": "phy", "message": "phy: phy_version: 4180, cb3948e, Sep 12 2019, 16:39:13, 0, 0", "values": []}
I (617) heap_init: At 3FFAE2A0 len 00001D60 (7 KiB): DRAM ⇒ {"rule": "esp-idf", "level": "info", "name": "heap_init", "message": "heap_init: At 3FFAE2A0 len 00001D60 (7 KiB): DRAM"}
I (954) MyModule: 54 68 65 20 77 61 79 20 74 6f 20 67 65 74 20 73 ⇒ {"rule": "esp-idf", "level": "info", "name": "MyModule", "message": "MyModule: 54 68 65 20 77 61 79 20 74 6f 20 67 65 74 20 73", "values": []}
I (980) MyModule: The quick brown ⇒ {"rule": "esp-idf", "level": "info", "name": "MyModule", "device_ns": 980000000, "message": "MyModule: The quick brown"}
# constructed D (1234) main: debug detail ⇒ {"rule": "esp-idf", "level": "debug", "name": "main", "message": "main: debug detail"}
# constructed V (5) main: verbose detail ⇒ {"rule": "esp-idf", "level": "trace", "name": "main", "device_ns": 5000000, "message": "main: verbose detail"}
# esp-idf v5.5.6 and v6.1 components/log/src/log_timestamp_common.c: the system-time and Unix sources print wall-clock time
# constructed I (12:30:01.123) main: hello ⇒ {"rule": "esp-idf", "level": "info", "name": "main", "device_ns": null, "message": "main: hello"}
# constructed I (00:01:30.000) MyModule: system time ⇒ {"rule": "esp-idf", "level": "info", "name": "MyModule", "device_ns": null, "message": "MyModule: system time", "body": "system time"}
# constructed I (24-06-19 12:00:00.123) MyModule: system time with date ⇒ {"rule": "esp-idf", "level": "info", "name": "MyModule", "device_ns": null, "message": "MyModule: system time with date"}
# constructed I (1718795571035) MyModule: unix time in ms ⇒ {"rule": "esp-idf", "level": "info", "name": "MyModule", "device_ns": null, "message": "MyModule: unix time in ms"}
# the uptime counter is 32 bits of milliseconds
# constructed W (4294967295) main: last tick before the wrap ⇒ {"rule": "esp-idf", "level": "warn", "name": "main", "device_ns": 4294967295000000, "message": "main: last tick before the wrap"}
# src/log_format_text.c "%c %s%s%s%s%s": Log V2 drops the stamp (LOG_TIMESTAMP_SOURCE_NONE, DRAM and early logs) and the tag when it is NULL
E TAG_IN_DRAM: DRAM log message 2 ⇒ {"rule": "esp-idf", "level": "error", "name": "TAG_IN_DRAM", "device_ns": null, "message": "TAG_IN_DRAM: DRAM log message 2", "body": "DRAM log message 2", "prefixed": true}
# constructed I MyModule: no timestamp ⇒ {"rule": "esp-idf", "level": "info", "name": "MyModule", "device_ns": null, "message": "MyModule: no timestamp", "body": "no timestamp"}
# constructed W boot.esp32c5: flash size mismatch ⇒ {"rule": "esp-idf", "level": "warn", "name": "boot.esp32c5", "message": "boot.esp32c5: flash size mismatch"}
# constructed D esp_netif_lwip: dhcp started ⇒ {"rule": "esp-idf", "level": "debug", "name": "esp_netif_lwip", "message": "esp_netif_lwip: dhcp started"}
# constructed E (588) SPIFFS mount failed ⇒ {"rule": "esp-idf", "level": "error", "name": "", "device_ns": 588000000, "message": "SPIFFS mount failed"}
# constructed I (1234) no tag here ⇒ {"rule": "esp-idf", "level": "info", "name": "", "device_ns": 1234000000, "message": "no tag here", "body": "no tag here"}
# the Wi-Fi library prints its tag with no space after the colon
I (558) wifi:wifi driver task: 3ffc1e4c, prio:23, stack:6656, core=0 ⇒ {"rule": "esp-idf+kv", "level": "info", "name": "wifi", "device_ns": 558000000, "message": "wifi:wifi driver task: 3ffc1e4c, prio:23, stack:6656, core=0", "values": [["core", 0, null]]}
I (578) wifi:wifi firmware version: 3e5b4e6 ⇒ {"rule": "esp-idf", "level": "info", "name": "wifi", "message": "wifi:wifi firmware version: 3e5b4e6", "values": []}
I (2048) wifi:state: init -> auth (b0) ⇒ {"rule": "esp-idf", "level": "info", "name": "wifi", "message": "wifi:state: init -> auth (b0)"}
I (1268) wifi:new:<6,0>, old:<1,0>, ap:<255,255>, sta:<6,0>, prof:1 ⇒ {"rule": "esp-idf", "level": "info", "name": "wifi", "message": "wifi:new:<6,0>, old:<1,0>, ap:<255,255>, sta:<6,0>, prof:1", "values": []}
W (2345) wifi:Association refused temporarily, comeback time 200 mSec ⇒ {"rule": "esp-idf", "level": "warn", "name": "wifi", "device_ns": 2345000000, "message": "wifi:Association refused temporarily, comeback time 200 mSec"}
# constructed I (56) boot:x ⇒ {"rule": "esp-idf", "level": "info", "name": "boot", "message": "boot:x"}
# bootloader esp_image_format.c: "segment %d: paddr=%08x vaddr=%08x size=%05xh (%6d) %s"
I (96) esp_image: segment 0: paddr=00010020 vaddr=3f400020 size=0a3ech ( 41964) map ⇒ {"rule": "esp-idf", "level": "info", "name": "esp_image", "message": "esp_image: segment 0: paddr=00010020 vaddr=3f400020 size=0a3ech ( 41964) map", "values": []}
I (120) esp_image: segment 1: paddr=0001a414 vaddr=3ffb0000 size=0213ch (  8508) load ⇒ {"rule": "esp-idf", "level": "info", "name": "esp_image", "message": "esp_image: segment 1: paddr=0001a414 vaddr=3ffb0000 size=0213ch (  8508) load", "values": []}
I (124) esp_image: segment 2: paddr=0001c558 vaddr=40080000 size=03ac0h ( 15040) load ⇒ {"rule": "esp-idf", "level": "info", "name": "esp_image", "message": "esp_image: segment 2: paddr=0001c558 vaddr=40080000 size=03ac0h ( 15040) load", "values": []}
I (132) esp_image: segment 3: paddr=00020020 vaddr=400d0020 size=1497ch ( 85372) map ⇒ {"rule": "esp-idf", "level": "info", "name": "esp_image", "message": "esp_image: segment 3: paddr=00020020 vaddr=400d0020 size=1497ch ( 85372) map", "values": []}

# log.rst shows a colon after the stamp that log_format_text.c never prints
I (56): Log message ⇒ {"rule": "plain", "level": "info", "message": "I (56): Log message"}
# without a stamp, only a tag tells a log line from a sentence
# constructed I am sure: yes ⇒ {"rule": "plain", "level": "info", "message": "I am sure: yes"}
# constructed I see the board ⇒ {"rule": "plain", "level": "info", "message": "I see the board"}
# constructed E: Unable to locate package acme ⇒ {"rule": "level-word", "level": "error", "message": "Unable to locate package acme"}
# constructed I (2024-10-07 12:30:01.123) main: hello ⇒ {"rule": "plain", "level": "info", "message": "I (2024-10-07 12:30:01.123) main: hello"}
# docs/en/security/esp32_log.inc: the ROM prints its boot lines bare
ets Jun  8 2016 00:22:57 ⇒ {"rule": "plain", "level": "info", "message": "ets Jun  8 2016 00:22:57"}
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ⇒ {"rule": "plain", "level": "info", "message": "rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)"}
configsip: 0, SPIWP:0xee ⇒ {"rule": "plain", "level": "info", "message": "configsip: 0, SPIWP:0xee"}
entry 0x40080764 ⇒ {"rule": "plain", "level": "info", "message": "entry 0x40080764"}
rst:0xc (RTC_SW_CPU_RST),boot:0x18 (SPI_FAST_FLASH_BOOT) ⇒ {"rule": "plain", "level": "info", "message": "rst:0xc (RTC_SW_CPU_RST),boot:0x18 (SPI_FAST_FLASH_BOOT)", "values": []}
# constructed X (56) boot: x ⇒ {"rule": "plain", "level": "info", "message": "X (56) boot: x"}
# constructed I(56) boot: x ⇒ {"rule": "plain", "level": "info", "message": "I(56) boot: x"}
# constructed I (56)boot: x ⇒ {"rule": "plain", "level": "info", "message": "I (56)boot: x"}
# constructed I (abc) boot: x ⇒ {"rule": "plain", "level": "info", "message": "I (abc) boot: x"}
# constructed i (56) boot: x ⇒ {"rule": "plain", "level": "info", "message": "i (56) boot: x"}
[ 1065][E][sd_diskio.cpp:807] sdcard_mount(): f_mount failed: (3) The physical drive cannot work ⇒ {"rule": "arduino-esp32", "level": "error", "name": "sd_diskio", "message": "[sd_diskio.cpp:807] sdcard_mount(): f_mount failed: (3) The physical drive cannot work"}
