Подтвердить что ты не робот

Отображение дополнительной строки в Logcat

В настоящее время я работаю над Android-приложением, которое использует "JSON" в качестве ответа от сервера. Обычно я работаю над ответом JSON. Но теперь у меня проблема с logcat, если строка ответа JSON очень длинная, больше, чем символ x (я точно не знаю, сколько строк max может отображаться logcat), некоторые строки JSON отсутствуют.

Хотя он все еще может дать мне вывод, мне нужна информация о строке JSON, которая передается с сервера.

Есть ли возможность отображать больше строк в logcat? Как увеличение буфера или любого параметра, который я мог бы использовать, чтобы увеличить максимальную длину строки, которая может отображаться с помощью logcat.

4b9b3361

Ответ 1

Ужасно, но он выполняет задание:

public static void longInfo(String str) {
    if(str.length() > 4000) {
        Log.i(TAG, str.substring(0, 4000));
        longInfo(str.substring(4000));
    } else
        Log.i(TAG, str);
}

Ответ 2

if(xml.length() > 4000) {
 for(int i=0;i<xml.length();i+=4000){
    if(i+4000<xml.length())
        Log.i("rescounter"+i,xml.substring(i, i+4000));
     else
        Log.i("rescounter"+i,xml.substring(i, xml.length()));
}
} else
Log.i("resinfo",xml);

Вот как я это сделал.

Ответ 3

Некоторые из наших API RESTful возвращают очень длинные ответы JSON. Здесь метод, который форматирует их для LogCat:

private static final int LOGCAT_MAX_LENGTH = 3950;

...

private void logLongJsonStringIfDebuggable(String s) {
    if (BuildConfig.DEBUG) {
        while (s.length() > LOGCAT_MAX_LENGTH) {
            int substringIndex = s.lastIndexOf(",", LOGCAT_MAX_LENGTH);
            if (substringIndex == -1)
                substringIndex = LOGCAT_MAX_LENGTH;
            Log.d(TAG, s.substring(0, substringIndex));
            s = s.substring(substringIndex).trim();
        }
        Log.d(TAG, s);
    }
}

Ответ 4

если вы не используете eclipse, или вы только @Nanne ответ не работает для вас, я могу думать только по двум альтернативам:

  • Лучший, но более сложный, я полагаю, что ваш JSON составлен с помощью каких-то "итераций" (объектов JSON и/или массивов), поэтому вы можете анализировать и перемещать JSON и печатать каждый элемент в LogCat отдельно
  • Легче, но также уродливее, разделите строку JSON в подстроках и распечатайте каждую подстроку в LogCat (вы можете найти различные способы разделения String здесь)

изменить: Другая возможность: записать JSON в файл на SD-карте, например журнал, а затем извлечь файл, если вы хотите проверить ответ

Ответ 5

почему бы не использовать logcat из командной строки?

Я сомневаюсь, что это будет то, что вы ожидаете, но почему бы не попробовать?

выполните команду

./adb -e logcat

из каталога с adb. это для эмулятора. замените -e на -d для устройства

Ответ 6

В общем случае, если вы хотите получить вывод в Logcat, вы должны использовать команду "Log".

Пример:

Log.d(TAG,"OUTPUT"):

d = debug
TAG = строка, которую вы определяете, отображается в поле Logcat в столбце перед "нормальным" выходом
OUTPUT = материал, который хотите напечатать

Журнал - это класс ведения журнала, который вы можете использовать для вывода сообщений на логарифм. Вы можете читать сообщения в режиме реального времени, если вы запускаете logcat в DDMS (см. Далее). Общие методы ведения журнала включают в себя: v (String, String) (verbose), d (String, String) (debug), я (String, String) (информация), w (String, String) (предупреждение) и e (String, String ) (ошибка).

Для получения дополнительной информации:

http://developer.android.com/guide/developing/debug-tasks.html

EDIT:

То, что я считаю раньше, чтобы проверить некоторые вещи с выходами, вы не должны использовать:

System.out.println("JSON stuff");

Вместо этого вы должны использовать в своем коде:

// Values just as example
private static void string TAG = "+++JSON+++";
...
Log.d(TAG,"JSON stuff in here");
...

Он будет отображаться в Logcat. Я точно не знаю, почему, но это не лучший способ. Например, вы также можете отобразить сообщение об ошибке:

Log.e(...);

Он изменит цвет вашего вывода в Logcat, так что вы можете увидеть его лучше, например, возникает ошибка.