资源简介
便于开发,测试,定位问题。方便查看日志。所有日志保存本地文件,可按日志等级保存,定期删除,文件最长可保存自定义天数,代码中写的3天时间,<=3天 日志文件将会删除。
代码片段和文件信息
package com.genlot.lenb.util;
import android.content.Context;
import android.os.Environment;
import android.os.StatFs;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* log日志统计保存
* 日志最多保存3天,如果内存不足,逐个删除近3+i 天日志
*
* @author songzhenzhen
*/
public class LogcatHelper {
private static LogcatHelper instance = null;
private int order = 0;
private int mPId;
private String pathLogcat;
private LogThread mLogThread = null;
private String mylogfilename = “.log“;
private int SDCARD_LOG_FILE_SAVE_DAYS = 3;
private static SimpleDateFormat myLogSdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss“);
private static SimpleDateFormat logfile = new SimpleDateFormat(“yyyyMMdd HH:mm:ss“);
public void init(Context context) {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
pathLogcat = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + “HN_Log“;
} else {
pathLogcat = context.getFilesDir().getAbsolutePath() + File.separator + “HN_Log“;
}
File file = new File(pathLogcat);
if (!file.exists()) {
file.mkdirs();
} else {
if (availableSpace()) {
delFile(order);
} else {
deleteDirectory(pathLogcat);
}
}
}
private boolean availableSpace() {
File root = Environment.getRootDirectory();
StatFs sf = new StatFs(root.getPath());
long blockSize = sf.getBlockSize();
long blockCount = sf.getBlockCount();
long availCount = sf.getAvailableBlocks();
long totalBlocks = blockSize * blockCount / 1024;
long availableBlocks = availCount * blockSize / 1024;
if (availableBlocks < totalBlocks) {
return true;
} else {
return false;
}
}
public static LogcatHelper getInstance(Context context) {
if (instance == null) {
instance = new LogcatHelper(context);
}
return instance;
}
private LogcatHelper(Context context) {
init(context);
mPId = android.os.Process.myPid();
}
public void start() {
if (mLogThread == null)
mLogThread = new LogThread(String.valueOf(mPId) pathLogcat);
mLogThread.start();
}
public void stop() {
if (mLogThread != null) {
mLogThread.stopLogs();
mLogThread = null;
}
}
private class LogThread extends Thread {
private Process logcatProc;
private BufferedReader mReader = null;
private boolean mRunning
评论
共有 条评论