zoukankan      html  css  js  c++  java
  • org.slf4j:slf4j-api:添加日志管理

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

    一个好的程序, 完全可以从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 添加以下依赖

    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文件,默认情况下这个路径和文件名是固定的

    这里写图片描述

    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.html

    4:代码测试 
    这里写图片描述

    这里写图片描述

    保存在文件中的Log信息: 
    这里写图片描述

    彩蛋:控制台的颜色设置 
    这里写图片描述

    友情提示,你可能需要添加以下权限:

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

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


    Android 中Jackson的简单使用

  • 相关阅读:
    赫夫曼树相关算法
    用栈来实现 括号匹配 字符序列检验
    二叉树的建立和遍历
    数据结构-算术表达式求值
    构造一个单链表L,其头结点指针为head,编写程序实现将L逆置
    单链表的基本操作(C语言)数据结构
    java代码打印杨辉三角
    无标题
    写一个方法,判断给定的数字是偶数还是奇数
    关于生物信息学与R的相关资料和网站
  • 原文地址:https://www.cnblogs.com/it-tsz/p/11749631.html
Copyright © 2011-2022 走看看