1). 实现效果图
2). 实现思路
- 绘制边框
- 打印线程名称
- 打印堆栈信息
- 打印消息体
3). 边框绘制
边框实际上也是以字符串的形式打印
4). 打印线程信息
Log.println(priority, mTag, HORIZONTAL_LINE + "Thread: " + Thread.currentThread().getName());
5). 打印堆栈信息
builder.append(HORIZONTAL_LINE).append("").append(level).append(element.getClassName().substring(element.getClassName().lastIndexOf(".") + 1))
.append(".").append(element.getMethodName()).append(" ").append(" (").append(element.getFileName())
.append(":").append(element.getLineNumber()).append(")");
6). 打印消息体
// 获取消息总长度
int tLen = msg.length();
// 获取消息长度打印长度的倍数
int multiple = tLen / LENGTH + 1;
// 创建临时变量
String tmp;
// 遍历倍数
for (int i = 0; i < multiple; i++) {
// 获取字符内容
if (i != multiple - 1) {
// 获取指定范围的数据
tmp = msg.substring(i * LENGTH, (i + 1) * LENGTH);
} else {
// 最后一段数据
tmp = msg.substring(i * LENGTH);
}
// 打印消息
Log.println(priority, mTag, HORIZONTAL_LINE + tmp);
}
7). 代码下载
8). Gradle依赖
compile 'com.mazaiting:log:1.0.0'