您的位置:首页 > 移动开发 > Android开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐