Disable LogCat Output COMPLETELY in release Android app?
android, android-logcat, google-play, logcat, release
Solution
You can use ProGuard to remove completely any lines where a return value is not used, by telling ProGuard to assume that there will be no problems.
The following proguard.cfg chunk instructs to remove Log.d, Log.v and Log.i calls.
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** w(...);
public static *** v(...);
public static *** i(...);
}
The end result is that these log lines are not in your release apk, and therefore any user with logcat won't see d/v/i logs.
Problem
Shutting off my own app's LogCat output before releasing an app to the market is straightforward. I also know how to selectively filter LogCat message by tag and/or id for my own debug convenience. But now I am interested in something that may be much more difficult (perhaps impossible?): Disable all LogCat output, including & especially those coming from 3rd-party services like TtsService, GoogleLoginService, etc. Is this possible? To further clarify: I am not interested in filtering out messages for myself. I am rather interested in disabling 3rd-party messages for whoever downloads my app from the Android Market. Is this possible?