sólo tiene que utilizar
java.util.logging.Logger.getLogger(yourFullClassName).setLevel(java.util.logging.Level.All);
y
adb shell setprop log.tag.correspondingTag VERBOSE
uso androide esta función para obtener correspondingTag de la clase nombre completo:
public static String loggerNameToTag(String loggerName)
{
if (loggerName == null) {
return "null";
}
int length = loggerName.length();
if (length <= 23) {
return loggerName;
}
int lastPeriod = loggerName.lastIndexOf(".");
return length - (lastPeriod + 1) <= 23 ? loggerName.substring(lastPeriod + 1) : loggerName.substring(loggerName.length() - 23);
}
así por ejemplo, quiero habilite el registro para la clase "org.apache.http.impl.client.DefaultRequestDirector", haga lo siguiente a continuación:
String clzName = "org.apache.http.impl.client.DefaultRequestDirector";
String newClzName = loggerNameToTag(clzName);
System.out.println("className:" + clzName + " tagName is " + newClzName); //get tagName from class full name,and then it will be used in setprop
Logger jdkLogger = Logger.getLogger(clzName);
jdkLogger.setLevel(Level.ALL);
if (jdkLogger.isLoggable(Level.FINE))
{
jdkLogger.log(Level.FINE, "jdk log msg");
jdkLogger.log(Level.Fine,"tagName is")
}
Y luego, en adb shell
setprop log.tag.DefaultRequestDirector VERBOSE
He intentado esto en mi aplicación, y no estoy viendo los mensajes de registro entregados desde el HttpClient. ¿Funciona esto usando HttpClient que está en el SDK actual? Es decir, org.apache.http, vs org.apache.commons.http. Veo el mensaje de registro de prueba ("hola" en su ejemplo), pero nada de las llamadas de HttpClient. – Joe
con los SDK recientes que necesita usar el prefijo utilizado en la primera respuesta, "org.apache.http" en lugar de "httpclient", al menos esto funcionó para mí en un dispositivo 2.1. – HefferWolf
@ alex2k8 - ¿Por qué necesita establecer las propiedades del shell adb? –