美文网首页androidJava学习笔记程序员
在android中配置 slf4j + log4j 日志记录框架

在android中配置 slf4j + log4j 日志记录框架

作者: 张云飞Vir | 来源:发表于2016-06-22 23:29 被阅读647次

需求:

在项目开发中,需要记录 操作日志 。起初自己写了个简单的日志记录文本写入到文本的方法,后来随着项目的膨胀,需要考虑更多的操作,开始考虑性能问题。

实现:

考虑使用 slf4j + log4j 框架来实现。slf4j 是日志记录的一个facade,支持多种日志框架。log4j是个很优秀的日志记录框架。

实现:

下载类库:

先到各主站点下载类库

slf4j 网址 :http://www.slf4j.org/download.html

log4j网址: http://logging.apache.org/log4j/1.2/download.html

要再android中使用,还需要一个配置工具:http://code.google.com/p/android-logging-log4j/downloads/list 国内可能打不开,本文后的示例中包含有

需要使用的类库:

你需要在下载到的类库中找到下面的jar包,具体请忽略版本号部分,在你读到本文的时候可能有了更新的版本。

android-logging-log4j-1.0.3.jar    在android中配置log4j时需要使用这个类库。

log4j-1.2.17.jar           log4j的主功能包,这个文件有460k之大,面向大众用户的,需要考虑app包大小的慎重考虑本文的日志方式。

slf4j-api-1.7.12.jar          sjf4j的主功能包。

slf4j-log4j12-1.7.12.jar       绑定包,将sff4j和log4j绑定在一起,这样你才能使用slf4j的调用日志的方式来调动log4j来记录日志

实现代码

添加上面的几个类库引用到你的项目中,一般拷贝到libs文件夹下。

自定义个application类,继承自 Application,在onCreate启动时配置日志,代码如下:

package vir56k.logdemo;

import android.app.Application;
import android.os.Environment;

import org.apache.log4j.Level;
import org.apache.log4j.Logger;

import java.io.File;

import de.mindpipe.android.logging.log4j.LogConfigurator;

/**
 * Created by zhangyunfei on 15/9/9.
 */
public class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();

        configLog("log");
        Logger log = Logger.getLogger(MyApp.class);
        log.info("My Application Created");
 
    }

    private void configLog(String logFileNamePrefix) {
        LogConfigurator logConfigurator = new LogConfigurator();
        logConfigurator.setFileName(Environment.getExternalStorageDirectory()
                + File.separator + "logdemo" + File.separator + "logs"
                + File.separator + (logFileNamePrefix == null ? "" : logFileNamePrefix) + "log4j.txt");
        logConfigurator.setRootLevel(Level.DEBUG);
        logConfigurator.setLevel("org.apache", Level.ERROR);
        logConfigurator.setFilePattern("%d %-5p [%c{2}]-[%L] %m%n");
        logConfigurator.setMaxFileSize(1024 * 1024 * 2);
        logConfigurator.setImmediateFlush(true);
        logConfigurator.configure();
    }
}

写记录日志 的代码:

实例化

private static final Logger logger = LoggerFactory.getLogger(MainActivity.class);

执行

logger.debug("Some log message. Details: {}", "debug 输出");

我在github上放了我写的demo,地址如下: https://github.com/vir56k/demo

参考:

http://www.cnblogs.com/niutouzdq/archive/2013/12/24/3489062.html

http://cache.baiducontent.com/c?m=9d78d513d99d1cfa5eb5837e7c5789320e55f06564c0d0642c88c508ce3f0d550026bdb47d645646c4c40f7a1cff1701bfe73605340721a09bbfd91782a6d76f64d379732c1c9b114c8e4cb28a0076877bc147e2a51ee6b9f33093acd1d0dc5754c1540f7d8af18f5d1d&p=8b2a9715d9c342ab43b7d16815538c&newp=9c63c64ad4df11a058ee90664f4fcd231610db2151d4d01163&user=baidu&fm=sc&query=Log4J+slf4j+android&qid=a779aae80001b5b4&p1=8

http://stackoverflow.com/questions/2915150/log4j-support-in-android

http://stackoverflow.com/questions/2915150/log4j-support-in-android

相关文章

  • 2021-09-17 IO流(异常的日志信息)

    常见的日志框架:log4j、slf4j等

  • 代码规范(阿里)——日志规范

    【强制】应用中不可直接使用日志系统(Log4j、Logback)中的 API,而应依赖使用日志框架 SLF4J 中...

  • log4j和logback区别

    在java世界里, 日志框架通常有log4j 和slf4j, 而日志实现常用有log4j和logback, 通常情...

  • markdown 链接

    [TOC] 项目进度 日志 全局 日志 记录已经完成,采用了SLF4J接口,Log4J实现。配置了3个输出接口,控...

  • 日志规约

    【强制】应用中不可直接使用日志系统(Log4j、Logback)中的 API,而应依赖使用日志框架 SLF4J中的...

  • 日志

    常用的日志框架有以下集中log4j、logback、slf4j 1、slf4j 定义了日志的接口有,没有具体的实现...

  • 在android中配置 slf4j + log4j 日志记录框架

    需求: 在项目开发中,需要记录 操作日志 。起初自己写了个简单的日志记录文本写入到文本的方法,后来随着项目的膨胀,...

  • Log4J/Logback

    slf4j是一系列的日志接口,而log4j logback是具体实现了的日志框架。slf4j译为简单日志门面(Th...

  • Java日志系统的总结

    日志系统归类以及关系 常用的日志框架: slf4j、logback 、log4j、log4j2、JUL(java ...

  • SpringBoot 整合Logback框架

    新日志框架LogBack介绍 1.常用处理java的日志组件 slf4j,log4j,logback,common...

网友评论

本文标题:在android中配置 slf4j + log4j 日志记录框架

本文链接:https://www.haomeiwen.com/subject/jkundttx.html