在Logcat上显示更多字符串
我目前正在使用'JSON'作为来自服务器的响应的android应用程序。 通常我使用JSON响应。但是现在我遇到了一个logcat问题, 如果JSON响应字符串很长,超过x字符(我不知道logcat可以显示的最大字符串数量是多少),一些JSON字符串是失踪。在Logcat上显示更多字符串
尽管它仍然可以给我的输出,我需要的是从服务器发送来的JSON字符串的信息。
是否有可能显示在logcat的多个字符串?就像增加缓冲区或任何可用于增加logcat可显示的最大字符串长度的参数一样。如果你不使用
蚀,或你是谁@Nanne答案不为你工作,我只能想到两个选择:
- 最好的,但更复杂的,我想你的JSON是由组成某种“iterables”(JSON对象和/或阵列),这样,就可以解析并遍历JSON和在分开的logcat
- 更容易而且丑陋打印每个元件的,分割在子JSON字符串并打印在每个子在logcat的(你可以找到将字符串分割here不同的方式)
编辑:另一种可能性:写JSON在SD卡就像一个日志文件,然后当你想检查响应
难道不可以配置IDE(在我的情况下是Android Studio)不切断我的日志语句吗?在Xcode中,我从来没有遇到过这个问题。 – 2016-08-12 17:44:58
为什么不使用的logcat从命令行检索文件?
我怀疑它是否将是你期待什么,但为什么不试一试?
发出命令
./adb -e logcat
从具有亚行的目录。 这是模拟器。 替换-e
与-d
对于一个设备
在我的测试中,似乎命令行logcat也在某个点切断了日志条目字符串。 – ThomasW 2011-05-12 07:07:11
一般来说,如果你想获得输出到Logcat你应该使用“日志”命令。
一个例子:
Log.d(TAG,"OUTPUT"):
d =调试
TAG =定义字符串, “正常” 输出
OUTPUT =东西ü希望之前被显示在logcat中在列即可打印
日志是一个日志类,你可以用它来打印出信息到logcat的。如果您在DDMS上运行logcat,您可以实时阅读邮件(接下来介绍)。常见的日志记录方法包括:v(String,String)(verbose),d(String,String)(debug),i(String,String)(information),w(String,String)(warning)和e(String,String )(错误)。
欲了解更多信息:
http://developer.android.com/guide/developing/debug-tasks.html
编辑:
我彪之前就是为了测试一些东西与产出不应该使用:
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中输出的颜色,所以你可以看到它更好,如果如发生错误。
问题是他正在使用logcat,但logcat条目中字符串的长度有一个上限。 – ThomasW 2011-05-12 07:11:33
丑陋,但它的工作:
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);
这是我做到了。
我们的一些RESTful API返回非常长的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);
}
}
为什么不将json分成多个消息? – Mark 2011-01-11 09:25:38
我遇到了完全相同的问题 – 2012-07-22 00:03:18