在Android开发过程中免不了添加打印日志来调试或跟踪软件,下面就简单的介绍一下Log4j For Android 这个开源的打印工具类怎么用。其实网上早已有人写过很多这样的博客了。但为了记录一下自己的开发经历,就在这里做个记录,免得以后用到又到处乱找。
1.下载Android的Log4j库
https://code.google.com/p/android-logging-log4j/downloads/list
2.下载依赖Apache的Log4j库
http://archive.apache.org/dist/logging/log4j/
找到logging-log4j-1.2.9.zip下载里面有jar包
Log4jConfigure.java
[html] view plaincopy在CODE上查看代码片派生到我的代码片
package com.example.log4j;
import java.io.File;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import android.os.Environment;
import de.mindpipe.android.logging.log4j.LogConfigurator;
public final class Log4jConfigure
{
//=============================================
// Log4j for android 的配置初始化
// 建议放在Application的onCreate方法里
// 另外要判断手机是否有SD卡
//=============================================
private static Logger mLogger = null;
public static void configure()
{
final LogConfigurator logConfigurator = new LogConfigurator();
//===============================================================
//如果想创建的日记文件在多级目录下,要自己先创建目录,Log4j只能创建日记文件,不能创建多级目录
//===============================================================
logConfigurator.setFileName(Environment.getExternalStorageDirectory() + File.separator + "debugLog.txt");
logConfigurator.setRootLevel(Level.DEBUG); //设置输出类型
logConfigurator.setLevel("org.apache", Level.DEBUG);
logConfigurator.setFilePattern("%d %-5p [%c{2}]-[%L] %m%n");
logConfigurator.setMaxFileSize(1024 * 1024 * 5);
logConfigurator.setImmediateFlush(true);
logConfigurator.configure();
mLogger = Logger.getLogger("Log4jForAndroid");
}
public static void debug(String str)
{
mLogger.debug(str);
}
}
上面就是Log4jForAndroid的配置初始化类,具体怎么用就不啰嗦了,看注释
另外别忘了在AndroidManifest.xml添加上
[html] view plaincopy在CODE上查看代码片派生到我的代码片
另外还有一种打印方法
LogUtil.java
[html] view plaincopy在CODE上查看代码片派生到我的代码片
package com.example.log4j;
import android.util.Log;
public class LogUtil
{
public static final int LOG_LEVEL_NONE = 0;
public static final int LOG_LEVEL_DEBUG = 1;
public static final int LOG_LEVEL_INFO = 2;
public static final int LOG_LEVEL_WARN = 3;
public static final int LOG_LEVEL_ERROR = 4;
public static final int LOG_LEVEL_ALL = 5;
private static int mLogLevel = LOG_LEVEL_NONE;
public static void d(String tag, String msg)
{
if (getLogLevel() >= LOG_LEVEL_DEBUG)
{
Log.d(tag, msg);
}
}
public static void i(String tag, String msg)
{
if (getLogLevel() >= LOG_LEVEL_INFO)
{
Log.i(tag, msg);
}
}
public static void w(String tag, String msg)
{
if (getLogLevel() >= LOG_LEVEL_WARN)
{
Log.w(tag, msg);
}
}
public static void e(String tag, String msg)
{
if (getLogLevel() >= LOG_LEVEL_ERROR)
{
Log.e(tag, msg);
}
}
public static void v(String tag, String msg)
{
if (getLogLevel() >= LOG_LEVEL_ALL)
{
Log.v(tag, msg);
}
}
public static int getLogLevel()
{
return mLogLevel;
}
public static void setLogLevel(int level)
{
LogUtil.mLogLevel = level;
}
}
上面代码是在gitHub上别人的源码中找到的,地址我忘了,使用的时候先调用setLogLevel初始化
另外还有一个也是在gitHub上的https://github.com/snowdream/android-log
转载请注明本文出自卡卡宇科的博客(http://blog.csdn.net/hanyujianren/article/details/21821879)
代码下载