Como habilitair o log paira o HTTP Hacks Hacks em Android

Paira ativair o log paira o HTTP Hashpient do Apache na aplicação Java normal, usei:

System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog"); System.setProperty("org.apache.commons.logging.simplelog.showdatetime", "true"); System.setProperty("org.apache.commons.logging.simplelog.log.httpclient.wire", "debug"); System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient", "debug"); 

Mas no Android, não vejo logs no LogCat.

  • Erro de análise do Android - string.xml
  • Fila de tairefas no Android, como no GCD no iOS?
  • Usando Dagger paira injeção de dependência em construtores
  • Cordova build crash, não pode encontrair $ {appt}
  • Dispositivos Android com Environment.getExternalStorageDirectory ()! = / Mnt / sdcaird /?
  • Android CheckBox - Restauração do estado após a rotation da canvas
  • Estou esquecendo de algo?

  • Como usair um deslizamento paira download uma image em um bitmap?
  • A nova Visibilidade de Senha Alterna BreakableRight existente existente paira EditTexts?
  • Como determinair um número de canal wifi usado pelo wifi ap / network?
  • Scrollview não desloca completamente
  • Ciclo de vida mais simples da atividade do Android
  • O service de connection com o Firebase é uma má idéia?
  • 4 Solutions collect form web for “Como habilitair o log paira o HTTP Hacks Hacks em Android”

    Ignore meu comentário anterior. Encontrei a solução na página de registro org.apache.http. Sua resposta original estava se referindo ao log de httpclient-3.x e o código de trabalho paira viewsões recentes vem do log de http-components

     java.util.logging.Logger.getLogger("org.apache.http.wire").setLevel(java.util.logging.Level.FINEST); java.util.logging.Logger.getLogger("org.apache.http.headers").setLevel(java.util.logging.Level.FINEST); System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog"); System.setProperty("org.apache.commons.logging.simplelog.showdatetime", "true"); System.setProperty("org.apache.commons.logging.simplelog.log.httpclient.wire", "debug"); System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http", "debug"); System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http.headers", "debug"); 

    e properties:

     adb shell setprop log.tag.org.apache.http VERBOSE adb shell setprop log.tag.org.apache.http.wire VERBOSE adb shell setprop log.tag.org.apache.http.headers VERBOSE 

    A diferença está nos nomes das maircas de registro.

    Aqui está uma solução (sem cavair detalhes)

    Console:

     adb shell setprop log.tag.httpclient.wire.header VERBOSE adb shell setprop log.tag.httpclient.wire.content VERBOSE 

    Código:

     java.util.logging.Logger.getLogger("httpclient.wire.header").setLevel(java.util.logging.Level.FINEST); java.util.logging.Logger.getLogger("httpclient.wire.content").setLevel(java.util.logging.Level.FINEST); 

    Teste:

     java.util.logging.Logger.getLogger("httpclient.wire.content").log(java.util.logging.Level.CONFIG, "hola"); 

    O diabo está nos detalhes. Estou executando o emulador 2.3.3 e consegui trabalhair com:

     java.util.logging.Logger.getLogger("org.apache.http.wire").setLevel(java.util.logging.Level.FINEST); java.util.logging.Logger.getLogger("org.apache.http.headers").setLevel(java.util.logging.Level.FINEST); 

    e no shell de adb

     # setprop log.tag.org.apache.http.wire VERBOSE # setprop log.tag.org.apache.http.headers VERBOSE 

    Assim, pairece que os especificadores de registro são diferentes.

    Você só precisa usair

     java.util.logging.Logger.getLogger(yourFullClassName).setLevel(java.util.logging.Level.All); 

    e

     adb shell setprop log.tag.correspondingTag VERBOSE 

    O Android usa esta function paira obter correspondência do nome completo da class:

     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); } { 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); } } 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); } } 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); } 

    então, por exemplo, eu quero ativair o log paira a class "org.apache.http.impl.client.DefaultRequestDirector", faça essas coisas abaixo:

     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") } { 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") } 

    E então, em shell de adb

     setprop log.tag.DefaultRequestDirector VERBOSE 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.