Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
门心叼龙
MVPArms
提交
b6a010d9
M
MVPArms
项目概览
门心叼龙
/
MVPArms
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
MVPArms
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
b6a010d9
编写于
4月 08, 2018
作者:
J
JessYan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix format error on DefaultFormatPrinter
上级
9463b8ae
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
47 addition
and
18 deletion
+47
-18
arms/src/main/java/com/jess/arms/http/log/DefaultFormatPrinter.java
...ain/java/com/jess/arms/http/log/DefaultFormatPrinter.java
+47
-18
未找到文件。
arms/src/main/java/com/jess/arms/http/log/DefaultFormatPrinter.java
浏览文件 @
b6a010d9
...
...
@@ -48,9 +48,9 @@ public class DefaultFormatPrinter implements FormatPrinter {
private
static
final
String
N
=
"\n"
;
private
static
final
String
T
=
"\t"
;
private
static
final
String
REQUEST_UP_LINE
=
"┌────── Request ────────────────────────────────────────────────────────────────────────"
;
private
static
final
String
END_LINE
=
"└───────────────────────────────────────────────────────────────────────────────────────"
;
private
static
final
String
RESPONSE_UP_LINE
=
"┌────── Response ───────────────────────────────────────────────────────────────────────"
;
private
static
final
String
REQUEST_UP_LINE
=
"
┌────── Request ────────────────────────────────────────────────────────────────────────"
;
private
static
final
String
END_LINE
=
"
└───────────────────────────────────────────────────────────────────────────────────────"
;
private
static
final
String
RESPONSE_UP_LINE
=
"
┌────── Response ───────────────────────────────────────────────────────────────────────"
;
private
static
final
String
BODY_TAG
=
"Body:"
;
private
static
final
String
URL_TAG
=
"URL: "
;
private
static
final
String
METHOD_TAG
=
"Method: @"
;
...
...
@@ -104,15 +104,15 @@ public class DefaultFormatPrinter implements FormatPrinter {
/**
* 打印网络响应信息, 当网络响应时 {{@link okhttp3.ResponseBody}} 可以解析的情况
*
* @param chainMs 服务器响应耗时(单位毫秒)
* @param chainMs
服务器响应耗时(单位毫秒)
* @param isSuccessful 请求是否成功
* @param code 响应码
* @param headers 请求头
* @param contentType 服务器返回数据的数据类型
* @param bodyString 服务器返回的数据(已解析)
* @param segments 域名后面的资源地址
* @param message 响应信息
* @param responseUrl 请求地址
* @param code
响应码
* @param headers
请求头
* @param contentType
服务器返回数据的数据类型
* @param bodyString
服务器返回的数据(已解析)
* @param segments
域名后面的资源地址
* @param message
响应信息
* @param responseUrl
请求地址
*/
@Override
public
void
printJsonResponse
(
long
chainMs
,
boolean
isSuccessful
,
int
code
,
String
headers
,
MediaType
contentType
,
...
...
@@ -134,13 +134,13 @@ public class DefaultFormatPrinter implements FormatPrinter {
/**
* 打印网络响应信息, 当网络响应时 {{@link okhttp3.ResponseBody}} 为 {@code null} 或不可解析的情况
*
* @param chainMs 服务器响应耗时(单位毫秒)
* @param chainMs
服务器响应耗时(单位毫秒)
* @param isSuccessful 请求是否成功
* @param code 响应码
* @param headers 请求头
* @param segments 域名后面的资源地址
* @param message 响应信息
* @param responseUrl 请求地址
* @param code
响应码
* @param headers
请求头
* @param segments
域名后面的资源地址
* @param message
响应信息
* @param responseUrl
请求地址
*/
@Override
public
void
printFileResponse
(
long
chainMs
,
boolean
isSuccessful
,
int
code
,
String
headers
,
...
...
@@ -171,11 +171,40 @@ public class DefaultFormatPrinter implements FormatPrinter {
int
start
=
i
*
MAX_LONG_SIZE
;
int
end
=
(
i
+
1
)
*
MAX_LONG_SIZE
;
end
=
end
>
line
.
length
()
?
line
.
length
()
:
end
;
Timber
.
tag
(
tag
).
i
(
DEFAULT_LINE
+
line
.
substring
(
start
,
end
));
Timber
.
tag
(
resolveTag
(
tag
)
).
i
(
DEFAULT_LINE
+
line
.
substring
(
start
,
end
));
}
}
}
private
static
int
last
;
private
static
final
String
[]
ARMS
=
new
String
[]{
"-A-"
,
"-R-"
,
"-M-"
,
"-S-"
};
private
static
String
computeKey
()
{
if
(
last
==
4
)
{
last
=
0
;
}
String
s
=
String
.
valueOf
(
ARMS
[
last
]);
last
++;
return
s
;
}
/**
* 此方法是为了解决在 AndroidStudio v3.1 以上 Logcat 输出的日志无法对齐的问题
* <p>
* 此问题引起的原因, 据 JessYan 猜测, 可能是因为 AndroidStudio v3.1 以上将极短时间内以相同 tag 输出多次的 log 自动合并为一次输出
* 导致本来对称的输出日志, 出现不对称的问题
* AndroidStudio v3.1 此次对输出日志的优化, 不小心使市面上所有具有日志格式化输出功能的日志框架无法正常工作
* 现在暂时能想到的解决方案有两个: 1. 改变每行的 tag (每行 tag 都加一个可变化的 token) 2. 延迟每行日志打印的间隔时间
* <p>
* {@link #resolveTag(String)} 使用第一种解决方案
*
* @param tag
*/
private
static
String
resolveTag
(
String
tag
)
{
return
computeKey
()
+
tag
;
}
private
static
String
[]
getRequest
(
Request
request
)
{
String
log
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录