2010-01-04 12 views
20

Dado que estamos utilizando logcat como una consola para Android. Hay casos en que el texto de salida/msg es algo grande y no puedo ver la salida completa. El log cat muestra solo la parte inicial. ¿Hay alguna manera de expandirlo para que pueda ver el mensaje completo?¿Cómo puedo ver textos largos/msg en logcat?

+1

sí .. lo general copiarlo en un editor de texto desde DDMS – Samuh

+0

Creo que esa es la única forma de salir – Bohemian

+1

Pero u no se puede copiar todo el texto hasta el final si es grande. El mensaje se elimina @ al final. – Bohemian

Respuesta

3

Si desea escribir mensajes largos para ver en logcat, puede valer la pena escribir su propio contenedor alrededor de los métodos android.util.Log que divide su mensaje largo en varias líneas.

+0

¿Lo quiere decir así: llame a Log.v dentro de una función personalizada? – OneWorld

+1

@OneWorld - Sí, llama a Log.v varias veces para pasarle diferentes partes del mensaje. –

10

Nunca utilizo la GUI para ver la salida de logcat, por lo que no estoy seguro de dónde/si hay barras de desplazamiento en la interfaz de usuario DDMS/Eclipse.

De todos modos, puede usar logcat desde la línea de comandos —, hay muchas opciones.

Para ver el registro de un dispositivo activo continuamente: adb logcat
para volcar todo el registro: adb logcat -d
para volcar todo el registro en un archivo: adb logcat -d > log.txt
filtrar y mostrar una etiqueta de registro en particular: adb logcat -s MyLogTag

... ¡y mucho más!

+1

No veo cómo esto ayudaría a nadie, pero tiene muchos votos. Los [mensajes de logcat se truncan en el dispositivo] (http://stackoverflow.com/a/8899735/253468), por lo que incluso si lee la consola vía, está leyendo el texto truncado. ¿Hay alguna opción oculta en "... y mucho más"? no estás diciendo? – TWiStErRob

2

Por supuesto, puede cambiar el ancho de la columna, simplemente yendo al final de la línea haciendo clic y arrastrando. Eso es un dolor para los mensajes realmente largos. Si tengo un mensaje muy largo, generalmente copio la línea y la pego en un archivo de texto. Ctrl-C en Windows lo copiará.

+2

Logcat elimina el texto del final si el mensaje es largo. No registra el mensaje completo Entonces, cuando lo copio, el texto también sale despojado – Bohemian

0

Para agregar a la respuesta de Jay Askren, también puede hacer doble clic en el borde derecho del encabezado de la columna "texto" para expandirlo por completo. Me di cuenta de que, aun así, hay un límite en la cantidad de caracteres que mostrará Eclipse.

15

Esta es la forma en que resolvió el problema. Espero eso ayude.

El método importante para usarlo dentro de su código es splitAndLog.

public class Utils { 
    /** 
    * Divides a string into chunks of a given character size. 
    * 
    * @param text     String text to be sliced 
    * @param sliceSize    int Number of characters 
    * @return ArrayList<String> Chunks of strings 
    */ 
    public static ArrayList<String> splitString(String text, int sliceSize) { 
     ArrayList<String> textList = new ArrayList<String>(); 
     String aux; 
     int left = -1, right = 0; 
     int charsLeft = text.length(); 
     while (charsLeft != 0) { 
      left = right; 
      if (charsLeft >= sliceSize) { 
       right += sliceSize; 
       charsLeft -= sliceSize; 
      } 
      else { 
       right = text.length(); 
       aux = text.substring(left, right); 
       charsLeft = 0; 
      } 
      aux = text.substring(left, right); 
      textList.add(aux); 
     } 
     return textList; 
    } 

    /** 
    * Divides a string into chunks. 
    * 
    * @param text     String text to be sliced 
    * @return ArrayList<String> 
    */ 
    public static ArrayList<String> splitString(String text) { 
     return splitString(text, 80); 
    } 

    /** 
    * Divides the string into chunks for displaying them 
    * into the Eclipse's LogCat. 
    * 
    * @param text  The text to be split and shown in LogCat 
    * @param tag  The tag in which it will be shown. 
    */ 
    public static void splitAndLog(String tag, String text) { 
     ArrayList<String> messageList = Utils.splitString(text); 
     for (String message : messageList) { 
      Log.d(tag, message); 
     } 
    } 
} 
Cuestiones relacionadas