Android在文件中寫日誌

Android在文件中寫日誌

有時候我們在程序需要打印日誌,但是使用Log打印在控制檯很容易就被刷過去,或者打的是簽名安裝包不方便在控制檯輸出日誌,那就需要我們把日誌寫到文件中,方便我們自己查看。

第一種、追加日誌輸出文件。就是每次輸出的日誌都在原先的日誌文件中追加,不會覆蓋上一次輸出的日誌。

/**
 * 追加文件:使用FileWriter
 * @param fileName
 * @param content
 */
public static void writeLog(String fileName,String content) {
   String path = Environment.getExternalStorageDirectory() + "Log/"; //文件路徑
   FileWriter writer = null;
   try {
       File file = new File(path);
       if (!file.exists()) {  //沒有創建文件夾則創建
           file.mkdirs();
       }
       // 打開一個寫文件器,構造函數中的第二個參數true表示以追加形式寫文件
       writer = new FileWriter(path + fileName, true);
       writer.write(content);
       writer.flush();  
       if (writer != null) {
            //關閉流
            writer.close();
       }
   } catch (IOException e) {
       e.printStackTrace();
   }
}

調用方法:

writeLog("log.txt",content);

第二種、不追加日誌輸出文件。每次輸出的日誌都會把上一次輸出的日誌覆蓋掉,只剩下最後一次輸出的日誌。

/**
 * 不追加文件
 * @param filename   文件名稱
 * @param content  打印內容
 */
public static void writeContent(String filename, String content) {
    String path = Environment.getExternalStorageDirectory() + "Log/"; //文件路徑
    FileOutputStream fos =null;
    try {
        fos = new FileOutputStream(path);
        File file = new File(path + filename);
        if (!file.exists()) {  //沒有創建文件則創建
            file.mkdirs();
        }
        fos.write(content.getBytes());  //寫入文件
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            fos.close();  //關閉文件流
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

調用方法:

writeContent("log.txt",content);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章