Console tab
Toolbar, filters, row anatomy, and the > prompt.
Mirrors console.log, .info, .warn, .error and .debug, plus output from wired-up WebView pages.
Holds the 500 most recent rows.
Toolbar
| Control | What it does |
|---|---|
| Record / Clear | As on the panel. The > prompt still answers while capture is paused. |
| Filter (⌕ list) | Opens the filters panel. |
| Warn/error/crash counts | On the right: a live count of captured warnings, errors and crashes, each in its colour. |
Filters panel
| Field | What it does |
|---|---|
| Search box | Matches the rendered text of a message, with match-case / whole-word / regex modes. |
| Level chips | All (n), Logs (n), Info (n), Warnings (n), Errors (n), Debug (n), Crashes (n). Counts are live. |
| Source chips | One per source, shown only when more than one source has logged, which means once a WebView reports in. |
Filters live in a store shared with the Console panel in React Native DevTools, so a filter set on either side shows on both, and switching tabs keeps them.
A console row
| Element | Meaning |
|---|---|
| Level icon | Info, warning, error and debug get a glyph and colour; warnings and errors tint the whole row. |
| Arguments | One cell per logged argument, so a message and its object stay apart. Objects and arrays render as a collapsed JSON tree; tap to expand level by level. |
| Error | The message on the row; tap to expand the full stack. |
| Call site | On warnings and errors: the file:line that logged them, resolved through Metro in a development build. |
| Source | WebView::[name] for browser-view output; absent for your app's own. |
| ×n | Repeat count. Consecutive identical messages from the same source collapse into one row. |
| Time | Wall-clock time of the most recent occurrence. |
| Copy | Copies the row's text. |
The list follows the newest output and stops following the moment you scroll back, with a ⌄ button to jump to the newest again.
Every crash is also written into the list, at the Crashes level, as a card rather than a line: its
name and message, its kind, a Previous launch badge when it was read back from disk, and
Open report. Tapping the card opens the full report over the Console tab. An error row that belongs
to a crash works the same way: tapping the message opens the report, while the disclosure arrow still
expands the inline stack.
The > prompt
Present when the REPL is enabled through console.repl, which
defaults to true in every build.
- Type an expression and submit: your input appears as an
inputrow (›), the result as aresultrow (‹). Objects come back as the same explorable tree. - A returned promise shows as pending and fills in when it settles.
- Suggestions appear as chips above the prompt as you type, including members of whatever object you are inside. Tap one to complete.
- Tap any earlier input row to load that command back into the prompt.
$modules('auth')lists loaded Metro modules matching a string;$m('src/stores/auth')returns one. Both read Metro's module registry, which only a development bundle has, so in a release build they return nothing.- Anything passed in
console.contextis in scope by name.
Your app's own imports are not reachable by name: a bundled module is a private closure, so there is
nothing for an expression to resolve. context is how you hand over the objects you want to poke at,
and it is the only route that works in a release build.