Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there an easy way to "deactivate logging" prior to releasing your app on the market?

I'm preparing to release an app on the market place, on reading the Google documentation located here it suggests the following : Deactivate any calls to Log methods in the source code.

Is there an easier way than having to go through all my source files and remove each line manually?

Also, why remove the logging, is it a resource hog?

like image 954
Jimmy Avatar asked Feb 28 '11 12:02

Jimmy


2 Answers

You can do this through proguard. In the latest SDK and tools a proguard configuration file should already exist. Christopher answered this in a similar question.

The easiest way is probably to run your compiled JAR through ProGuard before deployment, with a config like:

-assumenosideeffects class android.util.Log {
  public static int v(...);
}

That will — aside from all the other ProGuard optimisations — remove any verbose log statements directly from the bytecode.

You can decide which logoutputs you want to disable through adding

-assumenosideeffects class android.util.Log {
  public static int d(...);
  public static int i(...);
  public static int e(...);
}

to the proguard config file as well. I like to keep the .e Messages in my code because those are only used in some catch parts want decrease perfomance during the normal execution of the application.

like image 124
Janusz Avatar answered Sep 17 '22 06:09

Janusz


Have a look at this question:

  • Deactivate any calls to Log before publishing: are there tools to do this?
like image 34
dave.c Avatar answered Sep 21 '22 06:09

dave.c