Android_运用log4j打印日志
来源:互联网 发布:sql注入 预处理 编辑:程序博客网 时间:2024/06/05 10:16
日志的重要性
平时我们debug模式开发项目时,我们需要打印出debug级别的日志,这样在正式发布版本上运行的时候,这些debug日志是不会出现在日志文件中的,日志中记录的是比他更高级别的info,error日志。下面我们就使用log4j来为我们app增加日志打印功能,并保存到本地,供我们后期分析 。
1,需要2个jar包
1,log4j官方包
官方下载连接
2,安卓对log4j的支持包
请下载本篇项目代码
二,写日志类APPLogger
Log4j里面有个Logger类,使用这个类代替安卓中的Log类来打印日志,log4j会将日志同时写入配置好的文件中.
下面,重写一个包装类,来封装Logger,包括配置和打印方法。
import org.apache.log4j.Level;import org.apache.log4j.Logger;import de.mindpipe.android.logging.log4j.LogConfigurator;public class ViLogger { //典型的单例模式写法 private static Logger instance; static { instance = Logger.getLogger(ViLogger.class); } private ViLogger() { } /** * 配置日志 * 日志文件目录等 * * @param compile_level * @param filename */ public static void init(String compile_level, String filename) { LogConfigurator configurator = new LogConfigurator(); configurator.setFileName(filename); //设置编译级别,可以根据当前模式来设置 if (compile_level.equals("debug")) //debug及以上级别的消息会被打印 configurator.setRootLevel(Level.DEBUG); else //info及以上级别的消息会被打印 configurator.setRootLevel(Level.INFO); configurator.setLevel("org.apache", Level.ERROR); //%p 表示日志语句的优先级 //%c 日志信息所在的类名 //%m%n 表示日志信息的内容 configurator.setFilePattern("%d %-5p [%c{2}]-[%L] %m%n"); configurator.setMaxFileSize(1024 * 1024 * 1); configurator.setMaxBackupSize(3); configurator.setImmediateFlush(true); //很重要的一步,配置configure configurator.configure(); } public static void d(String msg) { instance.debug(msg); } public static void i(String msg) { instance.info(msg); } public static void e(String msg) { instance.error(msg); }}
三,在application类中初始化日志类
package com.raise.wind.log4jdemo;import android.app.Application;import com.raise.wind.log4jdemo.logger.APPLogger;/** * Created by yu on 2015/7/18. */public class APP extends Application { @Override public void onCreate() { String logFilePath = ...;// 参数可以配置在strings.xml中,这样就可以自动的区分debug版和release版// APPLogger.init(getString(R.string.compile_level)); ViLogger.init(getString(R.string.compile_level), logFilePath); }}
ok,最简单的日志功能成功配好了,在程序中使用:
ViLogger.i("测试日志debug");
记得加入权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
日志文件我没有写txt为后缀,用记事本打开即可。
2015-07-18 14:03:05,787 DEBUG [logger.APPLogger]-[18] 测试日志debug2015-07-18 14:03:05,796 ERROR [logger.APPLogger]-[19] 测试日志error
如果使用代码混淆的话,请记得加入这两句:
-dontwarn org.apache.log4j.**-keep class org.apache.log4j.**
ps:日志打印出不出的bug,多半是文件没有创建成功。
点我下载源码
0 0
- Android_运用log4j打印日志
- log4j 日志打印 配置
- 使用Log4j打印日志
- log4j日志打印
- Log4j 日志打印
- log4j 日志打印总结
- Log4j打印日志
- log4j添加打印日志
- log4j打印日志配置
- log4j maven 打印日志
- log4j日志没打印
- mybatis打印log4j日志
- 日志打印-log4j
- log4j打印日志
- 使用log4j打印日志
- Log4j 运用(一) :日志级别
- JAVA log4j日志基本运用
- Jfinal使用log4j打印日志
- java基础知识—String、StringBuffer和StringBuilder
- 教你在Android Studio 中进行单元测试
- nginx+lua+redis搭建
- 深度学习在图像识别中的应用--学习笔记3
- 图论之树链剖分模板
- Android_运用log4j打印日志
- 【Maven】Maven解决Maven Repository 没有
- (算法入门)基本图论-深度优先搜索之JAVA实现
- 引用计数
- Java子类继承(二):隐藏成员变量和方法重写的理解
- python RSA签名和解签
- 关于html选择文件(input指定类型js判断)
- 黑马程序员_反射
- 向量投影