Search code examples
androidreleasegoogle-playlogcatandroid-logcat

Disable LogCat Output COMPLETELY in release Android app?


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?


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.