[Android初级]使用microlog记录到本地日志

     如何在我们的android程序中保存日志到本地,最近项目中也有这样的需求,为了达到定期检查app的运行情况和排错任务,我选择了使用microlog4android的工具来实现。

项目结构:

技术分享

1.下载https://code.google.com/p/microlog4android/downloads/list(要翻墙)

2.添加microlog.properties到项目assets下

# This is a simple Microlog configuration file
microlog.level=DEBUG
microlog.appender=LogCatAppender;MyFileAppender
microlog.formatter=PatternFormatter
microlog.formatter.PatternFormatter.pattern=%c [%P] %m %T

3.添加权限<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

4.开始进入正题了,我的demo代码示例:

package com.example.micrologdemo;

import android.app.Activity;
import android.os.Bundle;

import com.example.micrologdemo.appender.MyFileAppender;
import com.google.code.microlog4android.Logger;
import com.google.code.microlog4android.LoggerFactory;
import com.google.code.microlog4android.config.PropertyConfigurator;
import com.google.code.microlog4android.format.PatternFormatter;
/**
 * 
 * @author jan
 */
public class MainActivity extends Activity {
	
	//创建Logger对象
	private static final Logger log = LoggerFactory
			.getLogger(MainActivity.class);

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//加载assets下的properties文件
		PropertyConfigurator.getConfigurator(this).configure();
		//选择记录类型
		log.addAppender(new  MyFileAppender());
		final MyFileAppender mfa = (MyFileAppender) log.getAppender(1);
		mfa.setAppend(true);//是否追加
		mfa.setFileName("test_local.log");//生成的日志名称
		PatternFormatter formatter = new PatternFormatter();
		formatter.setPattern("%r %c{1} [%P] %m %T");//%d{3}
		mfa.setFormatter(formatter);
		log.info("------onCreate----");//记录内容
		log.debug("------onCreate----");

		String nullStr = null;
		try {
			nullStr.equals(" hello nullpointException! ");
		} catch (Exception e) {
			log.error("发现错误:" + e.getCause(), e);
		}
	}

	@Override
	protected void onResume() {
		super.onResume();
		log.info("------onResume----");
		log.debug("------onResume----");
	}

	@Override
	protected void onPause() {
		super.onPause();
		log.info("------onPause----");
		log.debug("------onPause----");
	}

	@Override
	protected void onDestroy() {
		super.onDestroy();
		log.info("------onDestroy----");
		log.debug("------onDestroy----");
	}

	
}
5.运行程序后,在sdcard下会生成一个test_local.log的日志,内容如下

0 MainActivity 20000101 08:39:17 [INFO] ------onCreate---- 
3 MainActivity 20000101 08:39:17 [DEBUG] ------onCreate---- 
4 MainActivity 20000101 08:39:17 [ERROR] 发现错误:null java.lang.NullPointerException
16 MainActivity 20000101 08:39:17 [INFO] ------onResume---- 
17 MainActivity 20000101 08:39:17 [DEBUG] ------onResume---- 


是不是很棒,而且使用很简单,再做一些封装就可以加入到正式的项目中了。


最后献上demo,需要请自行下载

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。