NativeScope / Logs
Namespaces & levels
Use inferred namespaces and level filters to keep a busy JavaScript stream readable without changing every log call.
On this page
Namespaces come from the message
Logs recognizes a namespace at the beginning of a message:
console.log("[Checkout] started");
console.warn("Checkout: payment gateway is slow");These become the Checkout namespace in the Studio. The original message is preserved, and the
namespace becomes a fast filter rather than a second logging API your app has to adopt.
A leading level marker is skipped rather than mistaken for a namespace, so the very common
"[ERROR] Auth: failed" shape resolves to Auth, not ERROR. Stacked prefixes work too —
"[DEBUG][Auth] token expired" is Auth. Words that only look like levels are left alone:
[Errors] and [Logger] are still namespaces.
Messages without a recognizable prefix remain un-namespaced and are still searchable normally.
Levels keep the hierarchy intact
The filter bar exposes ERROR, WARN, INFO, LOG and DEBUG. Counts show how much signal is
available in the current scope before a level is toggled off, so hiding a level never makes it look
as if it did not happen.
Use the levels as a reading lens, not as a permanent rewrite of your logging style:
- Start with
ERRORwhen the question is “what failed?” - Add
WARNandINFOto understand the recovery path. - Return to
LOGandDEBUGwhen you need the detailed sequence.
The original console methods continue to receive their calls. Filtering changes what the Studio shows, not what your app emits to its normal development console.
Filter noisy libraries at capture time
For a library that emits known, irrelevant messages, use ignorePatterns in the Logs config. The
match is a substring of the rendered message, so keep patterns specific enough not to hide a useful
neighboring event.
logs: {
ignorePatterns: ["[VerboseAnimationLib]"],
},The inspector's own internal noise is ignored by default. Read Configuration for the complete typed surface.

