[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,需要请自行下载

时间: 2024-08-29 04:58:43

[Android初级]使用microlog记录到本地日志的相关文章

【Android】ADB常用指令与logcat日志(转)

ADB命令简介 ADB是一个功能强大的命令行工具.通过它可以直接和模拟器或真机进行交互.它是一个具有客户端和服务器端的程序. 它主要由三个部分组成: 客户端,它运行在你的开发机上,你可以通过执行adb命令来唤起一个客户端.其他的工具例如:ADT插件以及DDMS也可以创建一个ADB客户端. 服务端,它运行在你的后台进程,这个服务管理客户端和运行在你模拟起或真机上的守护进程. 守护进程,它运行在每台模拟器或真机的后台进程. 当你启动一个adb客户端的时候,客户端会首先检测是否已经有adb服务进程运行

Android APP压力测试(三)之Monkey日志自动分析脚本

Android APP压力测试(三) 之Monkey日志自动分析脚本 前言 上次说要分享Monkey日志的分析脚本,这次贴出来分享一下,废话不多说,请看正文. [目录] 1.Monkey日志分析脚本 2.脚本原理 3.操作实例 1.Monkey日志分析脚本 1).脚本文件:Monkey_Log分析.bat @ECHO OFF ECHO.::::::::::::::::::::::::::::::::::::::::::::::::: ECHO.::             分析Monkey日志 

监控系统 内存占用率并记录于本地文件中

vs2008  windows平台 监控内存性能(磁盘 网络流量 远程数据库记录待添加) 使用方法 vs2008 编译完成后 使用"WinPerforMonitor.exe -mem -log" 执行即可 -log命令行会在文件目录下新建一个文件记录内存使用率变化 目前仅仅支持内存记录 后继将添加cpu使用率 磁盘分区占用率及网络流量可以本地远程进行文件记录及数据库记录 以供查询分析 代码地址 http://www.oschina.net/code/snippet_614253_460

Apache日志切割及不记录指定类型日志

1.自带rotatelogs日志切割 ■ rotatelogs 日志轮询说明 ___________________________________________________________ 语法 rotatelogs [ -l ] logfile [ rotationtime [ offset ]] | [ filesizeM ] 选项 -l    使用本地时间代替GMT时间作为时间基准.注意:在一个改变GMT偏移量(比如夏令时)的环境中 使用-l会导致不可预料的结果. logfile

Android 访问权限设置记录-存档留着有用!

Android开发应用程序时,如果应用程序需要访问网络权限,需要在 AndroidManifest.xml 中加入以下代码: <uses-permission android:name=”android.permission.INTERNET”></uses-permission> 同样的如果用到其它的权限,也需要作出声明,部分权限列表如下: android.permission.ACCESS_CHECKIN_PROPERTIES 允许读写访问”properties”表在 chec

android布局常用属性记录

android布局常用属性记录 27. 三 / android基础 / 没有评论 http://blog.csdn.net/xn4545945/article/details/7717086这里有一部分别人总结的其余的: align:对齐 parent:容器 bottom:底部 alignparentbottom:是否显示在容器底部. 值为true 或者 false android:layout_alignParentBottom=”true” android:gravity=”top” htt

android的NDK和java进行本地socket通信

关于Android应用与Framework的socket通信,相信关心这个问题的朋友们已经看过<android使用socket使底层和framework通信>这篇文章,美中不足的是作者只贴出一些关键的代码片段而并没有放出源码.我这里还是以一个能实际运行的例子为基础来讲,这样也方便大家学习. 首先看一下效果,如下图.我填写姓名"Potter",选择性别"Mr"然后点击发送,底层socket收到消息后将消息直接返回给我,我将返回的结果(Mr.Potter)直

Android 笔记之错误记录

前言--好记性不如烂笔头,记录Android学习过程中遇到的各种问题BUG.O(∩_∩)O 错误1 -- Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x0 错误原因--一般是int 型数据赋给String ,然后让TextView显示就会出现如上错误. 解决办法--用String.valueOf 或者在int数据后加"" 错误2-- 在布局文件中,文本的设置使用如下写法

rsyslog 服务器重启后 发现不能接受到外部日志 只能接受本地日志 关闭防火墙即可

rsyslog 服务器重启后 发现不能接受到外部日志 只能接受本地日志  关闭防火墙即可 1 关闭防火墙: # systemctl stop firewalld 2 将SELINUX设置为disabled # setenforce 0 # sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config