Ответ 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);
}
В настоящее время я работаю над Android-приложением, которое использует "JSON" в качестве ответа от сервера. Обычно я работаю над ответом JSON. Но теперь у меня проблема с logcat, если строка ответа JSON очень длинная, больше, чем символ x (я точно не знаю, сколько строк max может отображаться logcat), некоторые строки JSON отсутствуют.
Хотя он все еще может дать мне вывод, мне нужна информация о строке JSON, которая передается с сервера.
Есть ли возможность отображать больше строк в logcat? Как увеличение буфера или любого параметра, который я мог бы использовать, чтобы увеличить максимальную длину строки, которая может отображаться с помощью logcat.
Ужасно, но он выполняет задание:
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);
}
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);
Вот как я это сделал.
Некоторые из наших 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);
}
}
если вы не используете eclipse, или вы только @Nanne ответ не работает для вас, я могу думать только по двум альтернативам:
изменить: Другая возможность: записать JSON в файл на SD-карте, например журнал, а затем извлечь файл, если вы хотите проверить ответ
почему бы не использовать logcat из командной строки?
Я сомневаюсь, что это будет то, что вы ожидаете, но почему бы не попробовать?
выполните команду
./adb -e logcat
из каталога с adb.
это для эмулятора.
замените -e
на -d
для устройства
В общем случае, если вы хотите получить вывод в 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, так что вы можете увидеть его лучше, например, возникает ошибка.