• 大小: 8KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: Java
  • 标签: log日志  

资源简介

便于开发,测试,定位问题。方便查看日志。所有日志保存本地文件,可按日志等级保存,定期删除,文件最长可保存自定义天数,代码中写的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

评论

共有 条评论

相关资源