Skip to content

Logcat Integration

How Android logs flow into Quern and what you should know about working with them.

When your agent starts log capture on an Android device, Quern reads from logcat (Android’s logging system) and normalizes entries into the same format as iOS logs. You can ask your agent about logs the same way regardless of platform:

“Show me the errors from my Android app” “What happened in the last 5 minutes?” “Filter logs to just my app”

Android has its own log levels, which Quern maps to its unified levels:

AndroidQuernWhen to use it
Verbose / DebugDEBUGDevelopment details, internal state
InfoINFONormal operations worth noting
WarnWARNINGSomething unexpected but recoverable
ErrorERRORSomething went wrong
Fatal / AssertFAULTApp is about to crash

Both Verbose and Debug map to DEBUG because in practice the distinction rarely matters for debugging.

Android logs are organized by tags — short labels set by the code. Your agent can filter by tag for precise results. Some useful ones:

  • Your app’s custom tags (whatever you pass to Log.d("MyTag", ...))
  • ReactNativeJS — React Native JavaScript console output
  • ActivityManager — App lifecycle events
  • System.err — Uncaught exceptions and stack traces

If you know which tag your code uses, tell your agent: “Show me logs with tag NetworkClient”

  • Capture starts from now, and leaves the device’s log alone. Quern reads from the newest line onward, so you won’t see stale entries from before your session. It no longer clears the device’s logcat buffer to get there, so Android Studio or a bug report taken afterwards still has the full history.
  • Crashes are picked out for you. A Java crash (FATAL EXCEPTION), a native crash (Fatal signal) or an ANR also becomes a crash entry, stored where high-volume logging cannot push it out. Ask your agent for errors, or for logs with source crash.
  • Multi-line messages (stack traces) are handled — they show up as connected entries, not separate lines.
  • Logcat’s buffer is limited (~256KB on emulators). High-volume logging wraps quickly. Tell your agent to start capturing before you reproduce the issue, not after.
  • Process filtering is client-side on Android (unlike iOS where it’s subprocess-level). This means all log entries are still captured and parsed, just filtered in Quern’s pipeline. Still fast enough for normal use, but heavier than iOS process filtering.