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

时间:2022-08-25 20:43:33

需求:

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

实现:

  考虑使用 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://*.com/questions/2915150/log4j-support-in-android

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

在android中配置 slf4j + log4j 日志记录框架的更多相关文章

  1. ELK环境配置+log4j日志记录

    ELK环境配置+log4j日志记录 1. 背景介绍 在大数据时代,日志记录和管理变得尤为重要. 以往的文件记录日志的形式,既查询起来又不方便,又造成日志在服务器上分散存储,管理起来相当麻烦, 想根据一 ...

  2. 使用 logback + slf4j 进行日志记录

    此处主要介绍maven web工程下如何使用 logback + slf4j  进行日志记录. logback主要包含三个组成部分:Loggers(日志记录器).Appenders(输出目的在).La ...

  3. 扔掉log4j、log4j2,自己动手实现一个多功能日志记录框架,包含文件,数据库日志写入,实测5W+/秒日志文件写入,2W+/秒数据库日志写入,虽然它现在还没有logback那么强大

    讲到log4j,现在国外基本是没有开发者用这个框架了,原因大致有几点,1.功能太少:2.效率低下:3.线程锁bug等等等各种莫名其妙的bug一直都没解决. 其实最重要的是log4j的作者自己也放弃了l ...

  4. (网页)Java日志记录框架Logback配置详解(企业级应用解决方案)(转)

    转自CSDN: 前言 Logback是现在比较流行的一个日志记录框架,它的配置比较简单学习成本相对较低,所以刚刚接触该框架的朋友不要畏惧,多花点耐心很快就能灵活应用了.本篇博文不会具体介绍Logbac ...

  5. Hibernate 使用log4j日志记录

    日志记录使程序员能够将日志详细信息永久写入文件.这是我们以后在开发当中非常重要的一步. Hibernate使用log4j日志记录,我们需要以下几个步骤: 1.导入jar包: (1)这是hibernat ...

  6. Hibernate使用Log4j日志记录(使用xml文件)

    日志记录使程序员能够将日志详细信息永久写入文件. Log4j和Logback框架可以在hibernate框架中使用来支持日志记录. 使用log4j执行日志记录有两种方法: 通过log4j.xml文件( ...

  7. [转]asp.net5中使用NLog进行日志记录

    本文转自:http://www.cnblogs.com/sguozeng/articles/4861303.html asp.net5中使用NLog进行日志记录 asp.net5中提供了性能强大的日志 ...

  8. Net Core平台灵活简单的日志记录框架NLog+SqlServer初体验

    Net Core平台灵活简单的日志记录框架NLog+SqlServer初体验 前几天分享的"[Net Core平台灵活简单的日志记录框架NLog+Mysql组合初体验][http://www ...

  9. Net Core平台灵活简单的日志记录框架NLog+Mysql组合初体验

    Net Core平台灵活简单的日志记录框架NLog初体验 前几天分享的"[Net Core集成Exceptionless分布式日志功能以及全局异常过滤][https://www.cnblog ...

随机推荐

  1. 为现有图像处理程序添加读写exif的功能

    为现有图像处理程序添加读取exif的功能 exif是图片的重要参数,在使用过程中很关键的一点是exif的数据能够和图片一起存在.exif的相关功能在操作系统中就集成了,在csharp中也似乎有了实现. ...

  2. 第二章 NIO入门

    传统的同步阻塞式I/O编程 基于NIO的非阻塞编程 基于NIO2.0的异步非阻塞(AIO)编程 为什么要使用NIO编程 为什么选择Netty 第二章 NIO 入门 2.1 传统的BIO编程 2.1.1 ...

  3. Jenkins简单使用介绍

    一.Jenkins的配置 1. 下载地址: Jenkins的官方网站:http://jenkins-ci.org/ 目前最新版本的Windows版:http://mirror.xmission.com ...

  4. 【PHP】最详细PHP从入门到精通(三)——PHP中的数组

     PHP从入门到精通 之PHP中的数组 各位开发者朋友大家好,链接上次更新,我们PHP的学习也更深了一层,本次博主给大家带来PHP数组的数组实例详解的相关资料.数组分为数组数值数值,关联数组,多维数组 ...

  5. ASP.NET MVC5 使用MiniProfiler 监控MVC性能

    MiniProfiler ,一个简单而有效的迷你剖析器,可以有效的实时监控页面.通过直接引用.Ajax.Iframe形式访问的其它页面进行监控,监控内容包括数据库内容,并可以显示数据库访问的SQL. ...

  6. [Android]上传到多个Maven仓库的Gradle插件RapidMavenPushPlugin

    博客搬迁至https://blog.wangjiegulu.com RSS订阅:https://blog.wangjiegulu.com/feed.xml RapidMavenPushPlugin 用 ...

  7. [转]Windows 经验集

    Windows Server 2012 R2 显示 这台电脑 图标方法: 来自:https://jingyan.baidu.com/article/f25ef2544f6883482c1b82e5.h ...

  8. cookie与session的区别与关系

    cookie与session的区别 1. 存储位置不同 cookie存储在浏览器中 session存储在服务端里 2. 大小不同 cookie最大4K session由于是存在服务端,因此理论上没有大 ...

  9. 使用 Apache Web 配置多个站点

    导读 如何在流行而强大的 Apache Web 服务器上托管两个或多个站点.这篇文章的环境是 Fedora 27 虚拟机,配置了 Apache 2.4.29.如果你用另一个发行版或不同的 Fedora ...

  10. DCM 图片查看

    因为要处理一些医学图像,需要把dcm格式的文件转换成jpg格式.本来用Sante DICOM Editor用得挺好的,方便查看dcm文件,但是在转换上每次只能转一张(本人没有找到用该软件批量转格式的方 ...