你只需要使用
java.util.logging.Logger.getLogger(yourFullClassName).setLevel(java.util.logging.Level.All);
和
adb shell setprop log.tag.correspondingTag VERBOSE
的Android使用此函數從類全名獲得correspondingTag:
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);
}
因此,例如,我想啓用「org.apache.http.impl.client.DefaultRequestDirector」類的日誌記錄,請執行以下操作:
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")
}
然後在亞行外殼
setprop log.tag.DefaultRequestDirector VERBOSE
來源
2012-11-21 06:35:53
nut
我想這在我的應用程序,和我沒有看到從HttpClient的交付的任何日誌消息。這是否使用當前SDK中的HttpClient工作?也就是說,org.apache.http與org.apache.commons.http。 我看到測試日誌消息(在您的示例中爲「hola」),但沒有任何來自HttpClient的調用。 – Joe 2010-07-21 18:46:21
與最近的SDK你需要使用第一個響應中使用的前綴,「org.apache.http」,而不是「httpclient」,至少這在我的2.1設備上工作。 – HefferWolf 2011-06-14 12:16:10
@ alex2k8 - 爲什麼你需要設置adb shell的屬性? – 2014-02-18 10:14:49