org.slf4j:slf4j-api:添加日誌管理

org.slf4j:slf4j-api:添加日誌管理

一個好的程序, 徹底能夠從Log中, 解決問題. 
一個好的Log系統,是一個程序的關鍵.html

本文介紹的是Logback-Android, 這個庫,能夠將Log寫入到File,寫入到數據庫,寫入到Email,寫入到網絡. 
固然,最基本的Logcat窗口完美輸出,是最基本的;android

開源地址: https://github.com/tony19/logback-android 
slf4j地址: http://www.slf4j.org/ 
slf4j API文檔: http://www.slf4j.org/api/ 
若是你須要瞭解更多,請自行百度(谷歌);git

logback 官方WIKI: https://github.com/tony19/logback-android/wiki 
logback API文檔: http://tony19.github.io/logback-android/doc/1.1.1-4/github

推薦閱讀: http://blog.csdn.net/haidage/article/details/6794529數據庫


1:Module中的build.gradle 添加如下依賴api

  1.  
    dependencies {
  2.  
    ...
  3.  
    compile 'org.slf4j:slf4j-api:1.7.21'
  4.  
    compile 'com.github.tony19:logback-android-core:1.1.1-5'
  5.  
    compile 'com.github.tony19:logback-android-classic:1.1.1-5'
  6.  
    }
  • 1

2:在如下位置建立一個logback.xml文件,默認狀況下這個路徑和文件名是固定的markdown

這裏寫圖片描述

3:配置logback文件網絡

  1.  
    <!--debug屬性用來決定是否打印logback的日誌信息-->
  2.  
    <configuration debug='false'>
  3.  
     
  4.  
    <!--聲明一個屬性,用來指定log文件存放的路徑-->
  5.  
    <property name="LOG_DIR" value="/sdcard/rlog"/>
  6.  
     
  7.  
    <!--聲明一個時間戳-->
  8.  
    <timestamp datePattern="yyyyMMdd" key="today"/>
  9.  
     
  10.  
    <!--用於在控制檯輸出的Appender-->
  11.  
    <appender name="LOGCAT" class="ch.qos.logback.classic.android.LogcatAppender">
  12.  
    <encoder>
  13.  
    <pattern>%-5relative [%thread][%file:%M:%line] - %msg%n</pattern>
  14.  
    </encoder>
  15.  
    </appender>
  16.  
     
  17.  
    <!--聲明一個FileAppender-->
  18.  
    <appender name="BASE_FILE" class="ch.qos.logback.core.FileAppender">
  19.  
    <!--初始化的時候不建立文件,在第一次使用的時候建立文件-->
  20.  
    <lazy>true</lazy>
  21.  
    <!--log追加到文件,不然覆蓋文件-->
  22.  
    <append>true</append>
  23.  
    <!--用來保存log的文件全路徑-->
  24.  
    <file>${LOG_DIR}/base.log</file>
  25.  
    <!--輸出log的格式-->
  26.  
    <encoder>
  27.  
    <!--<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} [%file:%line] - %msg%n</pattern>-->
  28.  
    <pattern>%date [%thread] %-5level %logger{36} [%file:%line] - %msg%n</pattern>
  29.  
    </encoder>
  30.  
    </appender>
  31.  
     
  32.  
    <!--聲明一個RollingFileAppender-->
  33.  
    <appender name="BASE_ROLL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  34.  
    <file>${LOG_DIR}/base.roll.${today}.log</file>
  35.  
    <append>true</append>
  36.  
    <encoder>
  37.  
    <pattern>%date %-5relative [%thread] %-5level %logger{36} [%file:%M:%line] - %msg%n
  38.  
    </pattern>
  39.  
    </encoder>
  40.  
     
  41.  
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  42.  
    <fileNamePattern>${LOG_DIR}/base.roll.%d{yyyy-MM-dd}.log</fileNamePattern>
  43.  
    <!--最大保存7天的日誌-->
  44.  
    <maxHistory>7</maxHistory>
  45.  
    </rollingPolicy>
  46.  
     
  47.  
    <!--文件大於10mb,切換文件-->
  48.  
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
  49.  
    <maxFileSize>10MB</maxFileSize>
  50.  
    </triggeringPolicy>
  51.  
    </appender>
  52.  
     
  53.  
    <!--指定logtest採用BASE_ROLL_FILE聲明的RollingFileAppender輸出日誌-->
  54.  
    <logger name="logtest">
  55.  
    <appender-ref ref="BASE_ROLL_FILE"/>
  56.  
    </logger>
  57.  
     
  58.  
    <!-- Write INFO (and higher-level) messages to the log file -->
  59.  
    <root level="TRACE">
  60.  
    <appender-ref ref="LOGCAT"/>
  61.  
    </root>
  62.  
     
  63.  
    <!--支持的level-->
  64.  
    <!--TRACE-->
  65.  
    <!--DEBUG-->
  66.  
    <!--INFO-->
  67.  
    <!--WARN-->
  68.  
    <!--ERROR-->
  69.  
     
  70.  
    <!--<pattern>
  71.  
    %d{yyyy-MM-dd HH:mm:ss} [%level] - %msg%n
  72.  
    Logger: %logger
  73.  
    Class: %class
  74.  
    File: %file
  75.  
    Caller: %caller
  76.  
    Line: %line
  77.  
    Message: %m
  78.  
    Method: %M
  79.  
    Relative: %relative
  80.  
    Thread: %thread
  81.  
    Exception: %ex
  82.  
    xException: %xEx
  83.  
    nopException: %nopex
  84.  
    rException: %rEx
  85.  
    Marker: %marker
  86.  
    %n
  87.  
    </pattern>-->
  88.  
     
  89.  
    <!--引用其餘位置的配置信息-->
  90.  
    <!--<includes>-->
  91.  
    <!--<include file="/sdcard/foo.xml"/>-->
  92.  
    <!--<include resource="assets/config/test.xml"/>-->
  93.  
    <!--<include resource="AndroidManifest.xml"/>-->
  94.  
     
  95.  
    <!--<include file="/sdcard/logback/logback-test.xml"/>-->
  96.  
    <!--<include file="/sdcard/logback/logback.xml"/>-->
  97.  
    <!--<include resource="AndroidManifest.xml"/>-->
  98.  
    <!--<include resource="assets/logback-test.xml"/>-->
  99.  
    <!--<include resource="assets/logback.xml"/>-->
  100.  
    <!--</includes>-->
  101.  
    </configuration>

還有其餘的appender提供,詳細說明移步: 
http://logback.qos.ch/manual/appenders.htmlapp

4:代碼測試 
這裏寫圖片描述post

這裏寫圖片描述

保存在文件中的Log信息: 
這裏寫圖片描述

彩蛋:控制檯的顏色設置 
這裏寫圖片描述

友情提示,你可能須要添加如下權限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

項目地址: https://github.com/angcyo/LogbackDemo


Android 中Jackson的簡單使用

相關文章
相關標籤/搜索