需求:
在项目开发中,需要记录 操作日志 。起初自己写了个简单的日志记录文本写入到文本的方法,后来随着项目的膨胀,需要考虑更多的操作,开始考虑性能问题。
实现:
考虑使用 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 日志记录框架的更多相关文章
-
ELK环境配置+log4j日志记录
ELK环境配置+log4j日志记录 1. 背景介绍 在大数据时代,日志记录和管理变得尤为重要. 以往的文件记录日志的形式,既查询起来又不方便,又造成日志在服务器上分散存储,管理起来相当麻烦, 想根据一 ...
-
使用 logback + slf4j 进行日志记录
此处主要介绍maven web工程下如何使用 logback + slf4j 进行日志记录. logback主要包含三个组成部分:Loggers(日志记录器).Appenders(输出目的在).La ...
-
扔掉log4j、log4j2,自己动手实现一个多功能日志记录框架,包含文件,数据库日志写入,实测5W+/秒日志文件写入,2W+/秒数据库日志写入,虽然它现在还没有logback那么强大
讲到log4j,现在国外基本是没有开发者用这个框架了,原因大致有几点,1.功能太少:2.效率低下:3.线程锁bug等等等各种莫名其妙的bug一直都没解决. 其实最重要的是log4j的作者自己也放弃了l ...
-
(网页)Java日志记录框架Logback配置详解(企业级应用解决方案)(转)
转自CSDN: 前言 Logback是现在比较流行的一个日志记录框架,它的配置比较简单学习成本相对较低,所以刚刚接触该框架的朋友不要畏惧,多花点耐心很快就能灵活应用了.本篇博文不会具体介绍Logbac ...
-
Hibernate 使用log4j日志记录
日志记录使程序员能够将日志详细信息永久写入文件.这是我们以后在开发当中非常重要的一步. Hibernate使用log4j日志记录,我们需要以下几个步骤: 1.导入jar包: (1)这是hibernat ...
-
Hibernate使用Log4j日志记录(使用xml文件)
日志记录使程序员能够将日志详细信息永久写入文件. Log4j和Logback框架可以在hibernate框架中使用来支持日志记录. 使用log4j执行日志记录有两种方法: 通过log4j.xml文件( ...
-
[转]asp.net5中使用NLog进行日志记录
本文转自:http://www.cnblogs.com/sguozeng/articles/4861303.html asp.net5中使用NLog进行日志记录 asp.net5中提供了性能强大的日志 ...
-
Net Core平台灵活简单的日志记录框架NLog+SqlServer初体验
Net Core平台灵活简单的日志记录框架NLog+SqlServer初体验 前几天分享的"[Net Core平台灵活简单的日志记录框架NLog+Mysql组合初体验][http://www ...
-
Net Core平台灵活简单的日志记录框架NLog+Mysql组合初体验
Net Core平台灵活简单的日志记录框架NLog初体验 前几天分享的"[Net Core集成Exceptionless分布式日志功能以及全局异常过滤][https://www.cnblog ...
随机推荐
-
为现有图像处理程序添加读写exif的功能
为现有图像处理程序添加读取exif的功能 exif是图片的重要参数,在使用过程中很关键的一点是exif的数据能够和图片一起存在.exif的相关功能在操作系统中就集成了,在csharp中也似乎有了实现. ...
-
第二章 NIO入门
传统的同步阻塞式I/O编程 基于NIO的非阻塞编程 基于NIO2.0的异步非阻塞(AIO)编程 为什么要使用NIO编程 为什么选择Netty 第二章 NIO 入门 2.1 传统的BIO编程 2.1.1 ...
-
Jenkins简单使用介绍
一.Jenkins的配置 1. 下载地址: Jenkins的官方网站:http://jenkins-ci.org/ 目前最新版本的Windows版:http://mirror.xmission.com ...
-
【PHP】最详细PHP从入门到精通(三)——PHP中的数组
PHP从入门到精通 之PHP中的数组 各位开发者朋友大家好,链接上次更新,我们PHP的学习也更深了一层,本次博主给大家带来PHP数组的数组实例详解的相关资料.数组分为数组数值数值,关联数组,多维数组 ...
-
ASP.NET MVC5 使用MiniProfiler 监控MVC性能
MiniProfiler ,一个简单而有效的迷你剖析器,可以有效的实时监控页面.通过直接引用.Ajax.Iframe形式访问的其它页面进行监控,监控内容包括数据库内容,并可以显示数据库访问的SQL. ...
-
[Android]上传到多个Maven仓库的Gradle插件RapidMavenPushPlugin
博客搬迁至https://blog.wangjiegulu.com RSS订阅:https://blog.wangjiegulu.com/feed.xml RapidMavenPushPlugin 用 ...
-
[转]Windows 经验集
Windows Server 2012 R2 显示 这台电脑 图标方法: 来自:https://jingyan.baidu.com/article/f25ef2544f6883482c1b82e5.h ...
-
cookie与session的区别与关系
cookie与session的区别 1. 存储位置不同 cookie存储在浏览器中 session存储在服务端里 2. 大小不同 cookie最大4K session由于是存在服务端,因此理论上没有大 ...
-
使用 Apache Web 配置多个站点
导读 如何在流行而强大的 Apache Web 服务器上托管两个或多个站点.这篇文章的环境是 Fedora 27 虚拟机,配置了 Apache 2.4.29.如果你用另一个发行版或不同的 Fedora ...
-
DCM 图片查看
因为要处理一些医学图像,需要把dcm格式的文件转换成jpg格式.本来用Sante DICOM Editor用得挺好的,方便查看dcm文件,但是在转换上每次只能转一张(本人没有找到用该软件批量转格式的方 ...