android 記錄檔輸出

來源:互聯網
上載者:User

標籤:android   日誌 log   

android 記錄檔輸出

用法:

try {
            
        } catch (Exception e) {
            LogUtil.LogException(e);
        }

package com.hexun.util;


import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.RandomAccessFile;
import java.io.StringWriter;

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

/**
 * 日誌列印
 */
public class LogUtil {

    private static final String FILE_NAME = "/logs.txt";
    private static Boolean MYLOG_SWITCH = true; // 記錄檔總開關

    public static void i(String tag, String str) {
        Log.i(tag, str.toString());
    }

    public static void LogException(Exception e) {
        if (MYLOG_SWITCH) {
            StringWriter sw = new StringWriter();
            PrintWriter pw = new PrintWriter(sw);
            e.printStackTrace(pw);
            String str = sw.toString();
            writeException(str);
        } else {
            e.printStackTrace();
        }
    }

    private static void writeException(String content) {
        try {
            if (Environment.getExternalStorageState().equals(
                    Environment.MEDIA_MOUNTED)) {
                // 擷取SD卡的目錄
                File sdCardDir = Environment.getExternalStorageDirectory();
                File targetFile = new File(sdCardDir.getCanonicalPath()
                        + FILE_NAME);
                // 以指定檔案建立RandomAccessFile對象
                RandomAccessFile raf = new RandomAccessFile(targetFile, "rw");
                // 將檔案記錄指標移動到最後
                raf.seek(targetFile.length());
                // 輸出檔案內容
                raf.write(content.getBytes());
                raf.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static String readException() {
        try {
            if (Environment.getExternalStorageState().equals(
                    Environment.MEDIA_MOUNTED)) {
                // 獲得SD卡對應的儲存目錄
                File sdCardDir = Environment.getExternalStorageDirectory();
                // 擷取指定檔案對應的輸入資料流
                FileInputStream fis = new FileInputStream(
                        sdCardDir.getCanonicalPath() + FILE_NAME);
                // 將指定輸入資料流封裝成BufferReader
                BufferedReader br = new BufferedReader(new InputStreamReader(
                        fis));
                StringBuilder sb = new StringBuilder("");
                String line = null;
                // 迴圈讀取檔案內容
                while ((line = br.readLine()) != null) {
                    sb.append(line);
                }
                br.close();
                return sb.toString();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

}

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

android 記錄檔輸出

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.