日志分析
日志路径
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" />