LogBack 在android上的使用详解
首先介绍一下 logback是log4j 同出一门.都是由log4j延伸而来
logback 重写了内部的实现,在某些特定的场景上面,甚至可以比之前的速度快上10倍。在保证logback的组件更加快速的同时,同时所需的内存更加少。
网上是这么说的具体快不快还没测试.
先来段网上的配置(如下):
使用配置
库的地址:https://github.com/tony19/logback-android
按照库上的指导,直接在module的gradle.build中的dependencies加入,版本号可根据github上最新的来,如下:
[]
编写logback.xml文件
第一步环境准备完毕,直接在module的src/main下新建assets目录,如下
[]
然后在新建一个xml,命名logback,注意此处的名字一定要是logback,不然系统会找不到。关于logback.xml文件的写法和说明,我在配置文件里都做了说明,下面截图如下:
[]
在配置appender的时候,需要注意的是,如果采用RollingFileAppender的时候,又想采用时间和大小去控制日志的滚动,那么需要使用SizeAndTimmBasedRollingPolicy,不然策略不生效,即滚动条件不生效。第二点,maxFileSize这个可以设置为KB或者MB,但是只能设置为整数,如果设置为小数,则无法生成log文件,样例配置如下:
[]
第三部:代码中使用
配置文件整理完毕,现在我们看看如何使用。其实使用上有两种方式:
第一种,直接使用,此种方式是直接找到root下的appender进行处理的,如下图:
[]
第二种,指定name的appender来处理,下面就是找到logger节点name为logtest的appender,如下图:
[]
最后说明下,此处需要申明读写权限,特别在6.0以上,需要动态申请储存权限,这点不要忘记了。
至此,在Android端集成logback已基本完成。有些细节已经在配置文件中指明,有些细节如需了解还需要自己手动补充了。
|
|
如果配置没有生效 可以继续,以下才是重点.!!!!
以下是我的配置:
- configuration 配置的基类 可以配置debug属性用来决定是否打印logback的日志信息,还可以配置扫描频率等
|
|
property 声明全局常量,我这里声明了两个路径,可以配置多个
用来定义变量值的标签,有两个属性,name和value;其中name的值是变量的名称,value的值时变量定义的值。通过 定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 123<property name="LOG_DIR" value="/sdcard/0hongzhi/log" /><!--声明一个属性,用来指定log文件存放的路径--><property name="LOG_HTTP_DIR" value="/sdcard/0hongzhi/post" />timestamp 声明一个时间戳,可多个不同样式.主要目的在下边用的时候不用重复声明了,两个属性 key:标识此
的名字;datePattern:设置将当前时间(解析配置文件的时间)转换为字符串的模式,遵循java.txt.SimpleDateFormat的格式。 1<!--<timestamp datePattern="yyyyMMdd" key="today" />-->LogcatAppender 用于在控制输出,name可以标识 用来调用, class 用于引用
123456<!--用于在控制台输出的Appender--><appender name="LOGCAT" class="ch.qos.logback.classic.android.LogcatAppender"><encoder><pattern>%-5relative [%thread][%file:%M:%line] - %msg%n</pattern></encoder></appender>FileAppender 我这里没有到 我在配置中虽然写了.
把日志添加到文件,有以下子节点:
|
|
重点属性
- RollingFileAppender 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。
|
|
rollingPolicy
- TimeBasedRollingPolicy 最常用的滚动策略,它根据时间来制定滚动策略,既负责滚动也负责出发滚动。有以下子节点:
|
|
>
- FixedWindowRollingPolicy 根据固定窗口算法重命名文件的滚动策略1234<minIndex>:窗口索引最小值<maxIndex>:窗口索引最大值,当用户指定的窗口过大时,会自动将窗口设置为12。<fileNamePattern >:必须包含“%i”例如,假设最小值和最大值分别为1和2,命名模式为 mylog%i.log,会产生归档文件mylog1.log和mylog2.log。还可以指定文件压缩选项,例如,mylog%i.log.gz 或者 没有log%i.log.zip
>
- triggeringPolicy12SizeBasedTriggeringPolicy: 查看当前活动文件的大小,如果超过指定大小会告知 RollingFileAppender 触发当前活动文件滚动。只有一个节点:<maxFileSize>:这是活动文件的大小,默认值是10MB。