# 目录
[TOC]
一个优秀的lib,一定有它人性化的调试模式,NoHttp也不例外,为了方便开发者查看请求过程和请求日志,NoHttp用一个Logger类来负责Log的打印。
如果你请求失败了,请求发生异常了,在吐槽作者之前,请打开调试模式看看NoHttp打印出的优雅的Log。
# 打开调试模式、设置TAG
NoHttp的调试模式,主要是提供一个合理的日志来供开发者查看和排查错误,默认的Log的TAG是“NoHttp”字符串。
NoHttp的调试模式的控制[NoHttp初始化与配置](http://doc.nohttp.net/222342)一样,最好在`Application#onCreate()`中设置。
```java
package com.yanzhenjie.simple;
public class MyApplication extends android.app.Application {
@Override
public void onCreate() {
super.onCreate();
Logger.setDebug(true); // 开启NoHttp调试模式。
Logger.setTag("NoHttpSample"); // 设置NoHttp打印Log的TAG。
...
}
}
```
# Log的预览说明
这里一个成功请求的例子:
![调试模式预览](https://box.kancloud.cn/594086b4304a7afc29fae01caed1ead8_1542x579.png)
上方的Log打印了一个Request完整的声明周期,NoHttp的一个请求的Log有以下特点:
1. 开头和结尾打开了`---Request Start---`和 `---Request Finish---`分割请求,完整的生命周期的内容都会打印在开头和结尾的里面。
2. 在`---Request Start---`之后会打印请求的`url`,如果是`GET`、`HEAD`请求方式,通过`request.add(key, value)`添加的参数将会在这里完整的以`url?key=value&key=value`的形式打印。
3. 接着会打印请求方法、请求头,如果你要查看Cookie是否发送,你添加的自定Head是否被发送,你应该查看这里。
4. 然后我们注意到`--Response start--`和 `--Response end--`,这一段Log会在服务器响应后被打印,将会把服务器的响应头都打印出来,包括服务器发送过来的`Set-Cookie`、响应码等。