Android Log存储到本地Logback的使用体验(slf4j)
2017-06-23 14:17
591 查看
Android-->Log系统,Logback的使用体验(slf4j)
2016-12-07 13:20 156人阅读 评论(0) 收藏 举报(转载)http://blog.csdn.net/angcyo/article/details/51405301
一个好的程序, 完全可以从Log中, 解决问题.
一个好的Log系统,是一个程序的关键.
本文介绍的是Logback-Android, 这个库,可以将Log写入到File,写入到数据库,写入到Email,写入到网络.
当然,最基本的Logcat窗口完美输出,是最基本的;
开源地址: https://github.com/tony19/logback-android
slf4j地址: http://www.slf4j.org/
slf4j API文档: http://www.slf4j.org/api/
如果你需要了解更多,请自行百度(谷歌);
logback 官方WIKI: https://github.com/tony19/logback-android/wiki
logback API文档: http://tony19.github.io/logback-android/doc/1.1.1-4/
推荐阅读: http://blog.csdn.net/haidage/article/details/6794529
1:Module中的build.gradle 添加以下依赖
dependencies { ... compile 'org.slf4j:slf4j-api:1.7.21' compile 'com.github.tony19:logback-android-core:1.1.1-5' compile 'com.github.tony19:logback-android-classic:1.1.1-5' }1
2
3
4
5
6
1
2
3
4
5
6
2:在以下位置创建一个logback.xml文件,默认情况下这个路径和文件名是固定的
3:配置logback文件
<!--debug属性用来决定是否打印logback的日志信息--> <configuration debug='false'> <!--声明一个属性,用来指定log文件存放的路径--> <property name="LOG_DIR" value="/sdcard/rlog"/> <!--声明一个时间戳--> <timestamp datePattern="yyyyMMdd" key="today"/> <!--用于在控制台输出的Appender--> <appender name="LOGCAT" class="ch.qos.logback.classic.android.LogcatAppender"> <encoder> <pattern>%-5relative [%thread][%file:%M:%line] - %msg%n</pattern> </encoder> </appender> <!--声明一个FileAppender--> <appender name="BASE_FILE" class="ch.qos.logback.core.FileAppender"> <!--初始化的时候不创建文件,在第一次使用的时候创建文件--> <lazy>true</lazy> <!--log追加到文件,否则覆盖文件--> <append>true</append> <!--用来保存log的文件全路径--> <file>${LOG_DIR}/base.log</file> <!--输出log的格式--> <encoder> <!--<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} [%file:%line] - %msg%n</pattern>--> <pattern>%date [%thread] %-5level %logger{36} [%file:%line] - %msg%n</pattern> </encoder> </appender> <!--声明一个RollingFileAppender--> <appender name="BASE_ROLL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_DIR}/base.roll.${today}.log</file> <append>true</append> <encoder> <pattern>%date %-5relative [%thread] %-5level %logger{36} [%file:%M:%line] - %msg%n </pattern> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_DIR}/base.roll.%d{yyyy-MM-dd}.log</fileNamePattern> <!--最大保存7天的日志--> <maxHistory>7</maxHistory> </rollingPolicy> <!--文件大于10mb,切换文件--> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>10MB</maxFileSize> </triggeringPolicy> </appender> <!--指定logtest采用BASE_ROLL_FILE声明的RollingFileAppender输出日志--> <logger name="logtest"> <appender-ref ref="BASE_ROLL_FILE"/> </logger> <!-- Write INFO (and higher-level) messages to the log file --> <root level="TRACE"> <appender-ref ref="LOGCAT"/> </root> <!--支持的level--> <!--TRACE--> <!--DEBUG--> <!--INFO--> <!--WARN--> <!--ERROR--> <!--<pattern> %d{yyyy-MM-dd HH:mm:ss} [%level] - %msg%n Logger: %logger Class: %class File: %file Caller: %caller Line: %line Message: %m Method: %M Relative: %relative Thread: %thread Exception: %ex xException: %xEx nopException: %nopex rException: %rEx Marker: %marker %n </pattern>--> <!--引用其他位置的配置信息--> <!--<includes>--> <!--<include file="/sdcard/foo.xml"/>--> <!--<include resource="assets/config/test.xml"/>--> <!--<include resource="AndroidManifest.xml"/>--> <!--<include file="/sdcard/logback/logback-test.xml"/>--> <!--<include file="/sdcard/logback/logback.xml"/>--> <!--<include resource="AndroidManifest.xml"/>--> <!--<include resource="assets/logback-test.xml"/>--> <!--<include resource="assets/logback.xml"/>--> <!--</includes>--> </configuration>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
还有其他的appender提供,详细说明移步:
http://logback.qos.ch/manual/appenders.html
4:代码测试
保存在文件中的Log信息:
彩蛋:控制台的颜色设置
友情提示,你可能需要添加以下权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
项目地址: https://github.com/angcyo/LogbackDemo.git
相关文章推荐
- Android-->Log系统,Logback的使用体验(slf4j)
- Android-->Log系统,Logback的使用体验(slf4j)
- Android-->Log系统,Logback的使用体验(slf4j)
- Android-->Log系统,Logback的使用体验(slf4j)
- 使用Vitamio打造自己的Android万能播放器(4)——本地播放(快捷搜索、数据存储)
- 使用Vitamio打造自己的Android万能播放器(4)——本地播放(快捷搜索、数据存储)
- Android上常用的几种本地数据存储方式:1、使用SharedPreferences存储数据
- 在Android中使用HTML5本地存储,地理位置,离线应用
- 在Android中使用Realm作本地存储
- Xamarin android使用Sqlite做本地存储数据库
- 常用日志使用方式(slf4j,logback,log4j,common-log)
- android 本地SharedPreferences存储到使用sqlite数据库存储的转换
- [开源类库/项目] android保存崩溃时的错误信息log至本地【源码+jar包+使用说明
- android WebView html5 使用本地存储
- Xamarin android使用Sqlite做本地存储数据库
- 使用Vitamio打造自己的Android万能播放器(4)——本地播放(快捷搜索、数据存储)
- 使用Vitamio打造自己的Android万能播放器(4)——本地播放(快捷搜索、数据存储)
- 使用Vitamio打造自己的Android万能播放器(4)——本地播放(快捷搜索、数据存储)
- [开源类库/项目] android保存崩溃时的错误信息log至本地【源码+jar包+使用说...
- 使用Vitamio打造自己的Android万能播放器(4)——本地播放(快捷搜索、数据存储)