安卓日常开发中,经常需要打印日记,经常需要把log输入到本地查看,本demo是把日记输出到本地的简单示例:
1.初始化保存路径(实例中为SD卡下: /storage/emulated/0/interprenter)
/**
* 初始化目录
*/
private void init(Context context) {
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {// 优先保存到SD卡中
PATH_LOGCAT = Environment.getExternalStorageDirectory()
.getAbsolutePath() + File.separator + "interprenter";
} else {// 如果SD卡不存在,就保存到本应用的目录下
PATH_LOGCAT = context.getFilesDir().getAbsolutePath()
+ File.separator + "interprenter";
}
File file = new File(PATH_LOGCAT);
if (!file.exists()) {
file.mkdirs();
LogUtils.e("创建文件夹");
}
LogUtils.e(PATH_LOGCAT);
}
2.编写一个线程,用户收集和写入日记
private class LogDumper extends Thread {
private Process logcatProc;
private BufferedReader mReader = null;
private boolean mRunning = true;
String cmds = null;
private String mPID;
private FileOutputStream out = null;
public LogDumper(String pid, String dir) {
mPID = pid;
try {
out = new FileOutputStream(new File(dir, "log_"
+ getFileName() + ".log"));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/**
*
* 日志等级:*:v , *:d , *:w , *:e , *:f , *:s
*
* 显示当前mPID程序的 E和W等级的日志.
*
* */
// cmds = "logcat *:e *:w | grep \"(" + mPID + ")\"";
// cmds = "logcat | grep \"(" + mPID + ")\"";//打印所有日志信息
// cmds = "logcat -s way";//打印标签过滤信息
cmds = "logcat *:e *:i | grep \"("