使用Volley获取详细的调试日志

20
在iOS的Restkit中有一个冗长的调试选项:RKLogConfigureByName("*", RKLogLevelTrace);。请问是否有Volley的相等选项?基本上我直接跳到ErrorListener,但在LogCat中没有额外信息。两者:
VolleyLog.e("Error: ", error.toString());

并且:

VolleyLog.e("Error: ", error.getMessage());

输出:

2.onErrorResponse: Error: 
5个回答

33

如果您想从volley库中获取详细的日志信息,您需要使用adb。

adb -s 42f63b0de7318fe1 shell setprop log.tag.Volley VERBOSE

其中"42f63b0de7318fe1"是您的设备ID,您可以通过以下方式获取:


where "42f63b0de7318fe1" is your device id which you will get by
adb devices

如果您想要保留此设置,请使用

adb -s 42f63b0de7318fe1 shell setprop persist.log.tag.Volley VERBOSE
如果您只有1个设备,可以省略-s参数。
另请参阅如何在Eclipse中设置ADT系统属性以使其始终运行
杀掉并重新启动应用程序以应用设置。

谢谢。几个月前我放弃了 Volley,开始使用 loopj 的库。 - Mika
没问题,我觉得我会把它留在这里,供下一个人使用 :) - Patrick
1
如果您只运行一个设备(模拟器),则不需要传递“-s”参数。 - Denys Kniazhev-Support Ukraine
persist选项根本没用!所以在每个调试会话中都要这样做,直到最后转换到Retrofit为止 :) - Radu

29
如果希望Volley输出调试信息,可以简单地设置 VolleyLog.DEBUG = true;,然后您就会在adb logcat输出中看到所有的详细日志。

这比@for3st的回答更有帮助,因为您不需要在不同设备上每次运行shell命令。谢谢。 - Harsh Sharma

5

使用

VolleyLog.v("TAG", "Message"); 

用于详细调试选项。

如果想要获取其他详细信息,您需要尝试使用错误对象提供的各种选项。按CTRL + SPACE键并进行试错测试即可。 :)

例如,

error.networkResponse.statusCode

如果页面不存在,将会返回404错误代码。

此外,我们还可以使用Volley提供的各种错误类来检查错误类型,使用:

 if(error instanceOf TimeoutError ){
    // you got timed out  
 }

更多详细信息请点击此处。玩得开心,欢迎来到Android :)


1
非常感谢。我在我的Mac模拟器上遇到了“NoConnectionError”的问题。调查仍在继续!! :) - Mika

2

截至2015年1月,对我有效的方法是

adb -s 0650ac52006b62db shell setprop Volley VERBOSE

"

"0650ac52006b62db"是设备ID,您可以使用以下方法获取

"
adb devices

"Volley"是Volley框架所使用的标签名称。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接