安卓开发离不开记录log日志,封装了一份简单的日志工具类,具有设置日志总开关,是否写入文件,日志过滤器和自定义标签,锁定打印log的类、函数名及行号,初始化有可以使用init函数也可以使用建造者模式,具体使用参看单元测试。
站点
init : 初始化函数
getBuilder: 获取LogUtils建造者
v : Verbose日志
d : Debug日志
i : Info日志
w : Warn日志
e : Error日志
具体路线
import android.os.Environment;
import android.util.Log;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
/**
*
* author: Blankj
* blog : http://blankj.com
* time : 2016/9/21
* desc : 日志相关工具类
*
*/
public class LogUtils {
private LogUtils() {
throw new UnsupportedOperationException("u can't instantiate me...");
}
private static boolean logSwitch = true;
private static boolean log2FileSwitch = false;
private static char logFilter = 'v';
private static String tag = "TAG";
private static String dir = null;
/**
* 初始化函数
*
与{@link #getBuilder()}两者选其一
*
* @param logSwitch 日志总开关
* @param log2FileSwitch 日志写入文件开关,设为true需添加权限 {@code }
* @param logFilter 输入日志类型有{@code v, d, i, w, e}
v代表输出所有信息,w则只输出警告...
* @param tag 标签
*/
public static void init(boolean logSwitch, boolean log2FileSwitch, char logFilter, String tag) {
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
dir = Utils.getContext().getExternalCacheDir().getPath() + File.separator;
} else {
dir = Utils.getContext().getCacheDir().getPath() + File.separator;
}
LogUtils.logSwitch = logSwitch;
LogUtils.log2FileSwitch