Vous avez juste besoin d'utiliser
java.util.logging.Logger.getLogger(yourFullClassName).setLevel(java.util.logging.Level.All);
et
adb shell setprop log.tag.correspondingTag VERBOSE
utiliser Android cette fonction pour obtenir correspondingTag de la classe Nom complet:
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);
}
donc par exemple, je veux activer la journalisation pour la classe "org.apache.http.impl.client.DefaultRequestDirector", procédez comme suit:
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")
}
Et puis dans adb shell
setprop log.tag.DefaultRequestDirector VERBOSE
J'ai essayé dans mon application, et je ne vois aucun message de journal délivrés du HttpClient. Est-ce que cela fonctionne en utilisant le HttpClient qui est dans le SDK actuel? C'est-à-dire, org.apache.http, vs org.apache.commons.http. Je vois le message du journal de test ("hola" dans votre exemple), mais rien des appels HttpClient. – Joe
avec les SDK récents, vous devez utiliser le préfixe utilisé dans la première réponse, "org.apache.http" au lieu de "httpclient", au moins cela a fonctionné pour moi sur un périphérique 2.1. – HefferWolf
@ alex2k8 - Pourquoi avez-vous besoin de définir les propriétés du shell ADB? –