find-non-lambda-logs

Installation
SKILL.md

Find Non-Lambda Log Calls

Overview

Three related logging hygiene issues:

  1. Lambda overload missing. Log.d/i/w/e calls that use string interpolation without the lambda overload waste string allocation when the log level is filtered out in release builds.
  2. Throwable dropped in catch blocks. Log.w/e calls inside catch (e: ...) blocks that interpolate ${e.message} but don't pass e lose the stack trace, and log nothing useful when e.message is null (NPE, IOException with no message, etc.).
  3. Still on android.util.Log. Files importing the platform logger bypass Log.minLevel and the LogSink, and have no lambda overload — so neither fix above can be applied to them. Step 0 finds these; the last section migrates them.

When to Use

  • After merging branches that add new logging
  • Periodic audit of logging hygiene
  • After migrating android.util.Log usages to the shared Log wrapper

What to Flag

Calls with string interpolation ($ in message) that do not pass a throwable:

Installs
16
GitHub Stars
1.6K
First Seen
Mar 30, 2026