Skip to content

Commit 4938c4b

Browse files
authored
create readme.md
1 parent fc5d181 commit 4938c4b

File tree

1 file changed

+149
-0
lines changed

1 file changed

+149
-0
lines changed

README.md

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
# SLog
2+
3+
```
4+
Android log日志库 -功能齐全,扩展性强,性能高效。(只需一次初始化,就可以随心处理log)
5+
```
6+
7+
##### [![Join the chat at https://gitter.im/alibaba/ARouter](https://badges.gitter.im/alibaba/ARouter.svg)](https://gitter.im/alibaba/ARouter?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Hex.pm](https://img.shields.io/hexpm/l/plug.svg)](https://www.apache.org/licenses/LICENSE-2.0)
8+
9+
---
10+
11+
#### 最新版本
12+
13+
模块|slog-api
14+
---|---
15+
最新版本|[![Download](https://api.bintray.com/packages/zhi1ong/maven/arouter-api/images/download.svg)](https://bintray.com/zhi1ong/maven/arouter-api/_latestVersion)
16+
17+
#### Demo展示
18+
19+
##### [Demo apk下载](http://public.cdn.zhilong.me/app-debug.apk)[Demo Gif](https://raw.githubusercontent.com/alibaba/ARouter/master/demo/arouter-demo.gif)
20+
21+
#### 一、功能介绍
22+
1. **支持多个通道打印日志,可自定义实现打印机**
23+
2. **支持同步、异步方式写日志到文件**
24+
3. **支持日志缓存自动清理**
25+
4. **多种多样的格式化工具**
26+
5. **支持多种文件,满足实际应用中多种类型日志需求(时间片、文件后缀)**
27+
6. **支持打印无限长的日志**
28+
7. **支持线程信息输出**
29+
8. **支持调用栈信息(可配置的调用栈深度)**
30+
8. **支持多种TAG类型配置组合**
31+
32+
#### 二、典型应用
33+
1. 调试时,在Android Studio Logcat中输出
34+
2. 保存应用中部分重要日志到外部储存。
35+
36+
#### 三、基础功能
37+
1. 添加依赖和配置
38+
```
39+
dependencies {
40+
compile 'com.weiqi:slog:x.x.x'
41+
...
42+
}
43+
```
44+
45+
2. 初始化
46+
``` Application
47+
@Override
48+
public void onCreate() {
49+
super.onCreate();
50+
Context context = getApplicationContext();
51+
52+
//init log
53+
Settings settings = new Settings.Builder()
54+
.context(context)//获取设备信息等写到日志文件头部
55+
.mLogSegment(LogSegment.TWENTY_FOUR_HOURS)//保存日志文件时间切片 如果缓存日志量大可以使用小时间片
56+
.zoneOffset(ZoneOffset.P0800)//保存日志时区偏移
57+
.timeFormat(SLogConstants.DEFAULT_TIME_FORMAT)//保存日志时间格式
58+
.isBorder(true)//是否 开启外框
59+
.isThread(true)//是否 打印线程信息
60+
.isStackTrace(true)//是否 打印堆栈跟踪信息 非必要可以关闭 提升性能
61+
.build();
62+
63+
/**
64+
* 创建一个控制台打印机
65+
*/
66+
Printer consolePrinter = new DefaultConsolePrinter();
67+
/**
68+
* 设置需要的堆栈跟踪信息深度为2层并开启数据自动JSON格式化
69+
*/
70+
consolePrinter.setFormatter(new DefaultConsoleFormatter(3, true));
71+
72+
/**
73+
* 创建一个SD卡文件打印机 设置日志存储地址
74+
* 默认开启 一个文件上限为30的缓存清理工具 你也可以null关闭 或者自定义实现
75+
*/
76+
Printer filePrinter = new DefaultFilePrinter(SDUtils.getLogPath(getApplicationContext()));
77+
filePrinter.setFormatter(new DefaultFileFormatter());
78+
filePrinter.addLevelForFile(new ArrayList<LogLevel>() {//需要写入文件的日志类型 不设置默认全写入日志文件
79+
{
80+
add(LogLevel.WTF);
81+
}
82+
});
83+
84+
if (BuildConfig.DEBUG) {
85+
SLog.init(settings, consolePrinter, filePrinter);
86+
} else {
87+
SLog.init(settings, filePrinter);//非debug环境 关闭consolePrinter
88+
}
89+
90+
}
91+
```
92+
93+
94+
4. 打印日志
95+
``` java
96+
// 1. 应用内简单的应用
97+
SLog.d(TAG, "测试");
98+
99+
// 2. 同步方式将 crash日志单独写入特定文件中
100+
使用同步方式保证进程被杀之前保存好信息
101+
正常场景推荐 异步方式
102+
SLog.wtfParams(TAG, "catch a crash info", "carsh", true);
103+
```
104+
105+
5. 添加混淆规则(如果使用了Proguard)
106+
```
107+
-keepattributes SourceFile, LineNumberTable
108+
-keep class com.weiqi.slog.** { *; }
109+
```
110+
111+
#### 四、进阶用法
112+
1. 自定义文件打印机
113+
``` java
114+
跟sdk中的 DefaultFilePrinter一样实现Printer接口
115+
你可以同步或者异步去写日志
116+
也可以自定义日志的包装格式
117+
118+
最后,将打印机放入SLog
119+
SLog.init(settings, filePrinter);
120+
```
121+
122+
2. 自定义格式化工具
123+
``` java
124+
如果你觉得内置的格式化工具不能满足你 你可以自定义格式化工具
125+
跟sdk中 DefaultFileFormatter一样实现MessageFormatter接口
126+
组织包装你需要的日志格式
127+
128+
最后,将打印机放入对应的打印机
129+
filePrinter.setFormatter(new DefaultFileFormatter());
130+
```
131+
132+
3. 自定义日志缓存清理工具
133+
``` java
134+
sdk中自带的LogCacheHelper是按时间顺序清理缓存文件的,如果觉得不适用,也可以自己实现。
135+
最后放入对应打印机
136+
DefaultFilePrinter(String logDir, CacheHelper cacheHelper)
137+
```
138+
139+
#### 五、功能&性能测试
140+
141+
参见demo中MainActivity各项测试
142+
143+
144+
#### 六、其他
145+
146+
1. 沟通和交流
147+
148+
我的简书:
149+

0 commit comments

Comments
 (0)