定制自己的日志工具

作者: wxyass 分类: Android 发布时间: 2017-03-18 16:42

定制自己的日志工具

LogUtils: 定义了几个方法

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import org.apache.http.util.EncodingUtils;

public class LogUtils
{
    private static LogUtils logUtils;

    public static LogUtils getInstances()
    {
        if (logUtils == null)
        {
            logUtils = new LogUtils();
        }
        return logUtils;
    }

    /***
     * 往文件中写内容
     * @param filePath
     * @param filename
     * @param value
     */
    public synchronized void write(String filePath, String filename, String value)
    {
        FileOutputStream fileOutputStream = null;
        try
        {
            createFile(filePath, filename);
            fileOutputStream = new FileOutputStream(filePath + filename, true);
            // byte[] bytes = (getDataFormat(System.currentTimeMillis()) + "  " + value + "\n").getBytes("GBK");
            byte[] bytes = (value + "\n").getBytes("UTF-8");
            fileOutputStream.write(bytes, 0, bytes.length);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            try
            {
                fileOutputStream.flush();
                fileOutputStream.close();
                // fw.close();
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
        }
    }

    /***
     * 读取文件
     * @param filePath
     * @param filename
     * @return
     */
    public synchronized String readFile(String filePath, String filename)
    {
        String content = "";
        FileInputStream fin = null;
        try
        {
            if (isExsistFile(filePath, filename))
            {
                // 文件流读取文件  
                fin = new FileInputStream(filePath + filename);
                // 获得字符长度  
                int length = fin.available();
                // 创建字节数组  
                byte[] buffer = new byte[length];
                // 把字节流读入数组中  
                fin.read(buffer);
                // 获得编码格式  
                //            String type = codetype(buffer);
                content = EncodingUtils.getString(buffer, "UTF-8");
            }
        }

        catch (Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            try
            {
                if (fin != null)
                {
                    // 关闭文件流  
                    fin.close();
                }
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
        }
        return content;
    }

    /***
     * 清除文件
     * @param filePath
     * @param filename
     */
    public synchronized void delFile(String filePath, String filename)
    {
        try
        {
            if (isExsistFile(filePath, filename))
            {
                File file = new File(filePath + filename);
                file.delete();
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }

    /***
     * 创建文件夹以及文件
     * @param filePath
     * @param filename
     */
    private void createFile(String filePath, String filename)
    {
        try
        {
            if (!isExsistFile(filePath, filename))
            {
                File dir=new File(filePath);
                if(!dir.exists()){
                    dir.mkdirs();
                }
                File file = new File(filePath + filename);
                file.createNewFile();
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }

    /***
     * 判断文件是否存在
     * @param filePath
     * @param filename
     */
    private Boolean isExsistFile(String filePath, String filename)
    {
        Boolean isExists = false;
        try
        {
            File file = new File(filePath + filename);
            isExists = file.exists();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        return isExists;
    }
}  

Bloglog: 对LogUtils

import java.text.SimpleDateFormat;
import java.util.Date;

import android.os.Environment;
import android.util.Log;


public class BlogLog
{
    static String TAG = "BlogLog";
    private static String filename = "log.txt";

    /***
     * 是否上线版本
     * ture:发布线上版本,不记录日志
     * false:测试版本,记录日志
     */
    public static boolean isOnline=true;

    public static void logUtils(String tag, String msg)
    {
        String s = tag + "-->" + msg;
        d(TAG, s);
        write(s);
    }

    /***
     * 打印日志
     * @param tag
     * @param msg
     */
    public static void d(String tag, String msg)
    {
        if (isOnline)
        {
            Log.d(tag, msg);
        }
    }

    /***
     * 打印日志
     * @param tag
     * @param msg
     */
    public static void i(String tag, String msg)
    {
        if (isOnline)
        {
            Log.i(tag, msg);
        }
    }

    /***
     * 打印日志
     * @param tag
     * @param msg
     */
    public static void e(String tag, String msg)
    {
        if (isOnline)
        {
            Log.e(tag, msg);
        }
    }

    /***
     * 打印日志
     * @param tag
     * @param msg
     */
    public static void e(String tag, String msg, Throwable tr)
    {
        if (isOnline)
        {
            Log.e(tag, msg, tr);
        }
    }

    /***
     * 打印日志
     * @param tag
     * @param msg
     */
    public static void w(String tag, String msg)
    {
        if (isOnline)
        {
            Log.w(tag, msg);
        }
    }

    /***
     * 写入文本到日志文件中 
     * 在内存卡 mnt/shell/emulated/0/dbt/et.tsingtaopad/log/log.txt 写入日志
     * @param value
     */
    public static void write(String value)
    {
        if (isOnline)
        {
            Log.e("DbtLog", value);
            try{
                //currentTimeMillis--取当前系统时间的毫秒, long 类型,记住!
                String newValue = getDataFormat(System.currentTimeMillis()) + "  " + value;
                String sdcardPath = Environment.getExternalStorageDirectory() + "";
                String DbtPATH = sdcardPath + "/blog/com.yassblog";
                String LOGPATH = DbtPATH + "/log/";
                LogUtils.getInstances().write(LOGPATH, filename, newValue);
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    }

    /***
     * 写入文本到日志文件中
     * 在内存卡 mnt/shell/emulated/0/dbt/et.tsingtaopad/log/filename.txt 写入日志
     * @param filename
     * @param value
     */
    public static void write(String filename,String value)
    {
        if (isOnline)
        {
            try{
                String newValue = getDataFormat(System.currentTimeMillis()) + "  " + value;
                String sdcardPath = Environment.getExternalStorageDirectory() + "";
                String DbtPATH = sdcardPath + "/blog/com.yassblog";
                String LOGPATH = DbtPATH + "/log/";
                LogUtils.getInstances().write(LOGPATH, filename, newValue);
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    }

    /***
     * 获取当前时间
     * @param timeInMillis
     * @return
     */
    private static String getDataFormat(long timeInMillis)
    {
        SimpleDateFormat dataFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return dataFormat.format(new Date(timeInMillis));
    }
}  

在文件中写log日志:

BlogLog.logUtils(TAG, "跳到系统摄像头界面");

// 路径: mnt/shell/emulated/0/blog/com.yassblog/log/log.txt

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注