Desactivar LogCat Salida COMPLETAMENTE en la versión de Android app?

Cerrar la salida de LogCat de mi propia aplicación antes de lanzar una aplicación al mercado es sencillo. También sé cómo filtrar selectivamente el mensaje de LogCat por etiqueta y / o id para mi propia conveniencia de depuración.

Pero ahora estoy interesado en algo que puede ser mucho más difícil (tal vez imposible?): Deshabilitar todos los resultados de LogCat, incluyendo y especialmente los que vienen de servicios de terceros como TtsService, GoogleLoginService, etc

es posible?

Para aclarar más: No estoy interesado en filtrar mensajes por mí mismo. Me interesa más desactivar los mensajes de terceros para quien descargue mi aplicación del Android Market. es posible?

Puede utilizar ProGuard para eliminar completamente cualquier línea donde no se utilice un valor de retorno, diciéndole a ProGuard que asuma que no habrá problemas.

El siguiente proguard.cfg chunk instruye para quitar las llamadas Log.d, Log.v y Log.i.

-assumenosideeffects class android.util.Log { public static *** d(...); public static *** w(...); public static *** v(...); public static *** i(...); } 

El resultado final es que estas líneas de registro no están en su release apk, y por lo tanto cualquier usuario con logcat no verá los registros de d / v / i.

Si no usas proguard, tienes que administrar el registro tú mismo y en el archivo de manifiesto hacer dubuggable false

 <application android:name="MyApplication" android:icon="@drawable/gift" android:label="@string/app_name" android:debuggable="@bool/build_log"> 

Aquí mi clase de registro personalizada

 public class Lol { public static final boolean ENABLE_LOG = true & MyApplication.sDebug; private static final boolean DEBUG = true & ENABLE_LOG; private static final boolean VERBOSE = true & ENABLE_LOG; private static final boolean TEMP = true & ENABLE_LOG; private static final boolean WARNING = true & ENABLE_LOG; private static final boolean INFO = true & ENABLE_LOG; private static final boolean ERROR = true & ENABLE_LOG; public static void obvious(String tag, String msg) { if (DEBUG) { msg = "*********************************\n" + msg + "\n*********************************"; Log.d(tag, msg); } } public static void d(String tag, String msg) { if (DEBUG) Log.d(tag, msg); } public static void d(boolean bool, String tag, String msg) { if (TEMP&bool) Log.d(tag, msg); } public static void i(String tag, String msg) { if (INFO) Log.i(tag, msg); } public static void e(String tag, String msg) { if (ERROR) Log.e(tag, msg); } public static void e(boolean bool, String tag, String msg) { if (TEMP&bool) Log.e(tag, msg); } public static void v(String tag, String msg) { if (VERBOSE) Log.v(tag, msg); } public static void w(String tag, String msg) { if (WARNING) Log.w(tag, msg); } public static String getStackTraceString(Exception e) { return Log.getStackTraceString(e); } public static void w(String tag, String msg, Exception e) { if (WARNING) Log.w(tag, msg,e); } } 

La gran respuesta proporcionada por David Caunt no parece funcionar para las reglas definidas en proguard-android-optimize.txt .

En lugar de utilizar el comodín *** , las versiones actuales de ProGuard parecen esperar el parámetro de retorno del tipo de calificador:

 -assumenosideeffects class android.util.Log { public static int d(...); public static int w(...); public static int v(...); public static int i(...); public static int wtf(...); } 
  • Android: Filtrar Logcat por etiqueta mediante un regex
  • Log.d con ActionBarScherlock
  • Android, la ventana de Logcat ha desaparecido
  • ¿Cómo supervisar constantemente el archivo LogCat?
  • Logcat de Android registrando sólo el nivel de información en el dispositivo real. No se pueden obtener mensajes de depuración, ni siquiera las excepciones no controladas
  • Java.lang.RuntimeException: No se puede instanciar la actividad ComponentInfo {...}: java.lang.ClassNotFoundException: No encontró la clase
  • ¿Por qué Logcat no está mostrando nada?
  • Android java.lang.NullPointerException: println necesita un mensaje
  • mensajes de error de libagl alphaPlaneWorkaround en LogCat
  • Android Runtime Logcat solo obtiene la instancia actual
  • Eclipse LogCat - No funciona
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.