
# 日志分析
#### 日志路径
OBS Android SDK的日志路径是通过LogConfigurator.setLogFileDir指定的，默认存放于SD卡的logs目录下。日志文件名为：OBS-SDK.log。
#### 日志内容格式
SDK日志格式为：日志时间\|线程号\|日志级别\|日志内容。示例如下：
```
2017-08-21 17:40:07 133|main|INFO |HttpClient cost 157 ms to apply http request
2017-08-21 17:40:07 133|main|INFO |Received expected response code: true
2017-08-21 17:40:07 133|main|INFO |expected code(s): [200, 204].
2017-08-21 17:40:06 820|main|INFO |Storage|1|HTTP+XML|ObsClient||||2017-08-21 17:40:05|2017-08-21 17:40:06|||0|
2017-08-21 17:40:07 136|main|INFO |Storage|1|HTTP+XML|setObjectAcl||||2017-08-21 17:40:06|2017-08-21 17:40:07|||0|
2017-08-21 17:40:07 137|main|INFO |ObsClient [setObjectAcl] cost 312 ms
```
#### 日志级别
当系统出现问题需要定位且当前的日志无法满足要求时，可以通过修改日志的级别来获取更多的信息。其中TRACE日志信息最丰富，ERROR日志信息最少。可以通过LogConfigurator.setLogLevel设置日志级别。
具体说明见下表：
| **日志级别** | **说明**                                                                             | **OBS Android SDK对应值** |
|:---|:---|:---|
| OFF      | 关闭级别，如果设置为这个级别，日志打印功能将被关闭。                                                         | LogConfigurator.OFF    |
| TRACE    | 跟踪级别，如果设置为这个级别，将打印所有日志信息。通常不建议使用。                                                  | LogConfigurator.TRACE  |
| DEBUG    | 调试级别，如果设置为这个级别，除了打印INFO级别以上的信息外，还将打印每次HTTP/HTTPS请求和响应的头信息，鉴权算法计算出的StringToSign信息等。 | LogConfigurator.DEBUG  |
| INFO     | 信息级别，如果设置为这个级别，除了打印WARN级别以上的信息外，还将打印HTTP/HTTPS请求的耗时时间，ObsClient接口的耗时时间等。           | LogConfigurator.INFO   |
| WARN     | 告警级别，如果设置为这个级别，除了打印ERROR级别以上的信息外，还将打印一些关键事件的信息，如重试请求超过最大次数等。                       | LogConfigurator.WARN   |
| ERROR    | 错误级别，如果设置为这个级别，仅打印发生异常时的错误信息。                                                      | LogConfigurator.ERROR  |
   
#### 日志无法生成
如发现无法生成日志，检查AndroidManifest.xml文件中是否加入了以下权限：
```
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
```
