Android Log存储到本地Logback的使用体验(slf4j)

来源:互联网 发布:倩女幽魂网游mac 编辑:程序博客网 时间:2024/04/29 16:53
 

Android-->Log系统,Logback的使用体验(slf4j)

 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

原创粉丝点击