Android開發:日誌功能備忘

拾一贰叁發表於2024-10-08

臨時記一下吧,以後就直接複製貼上這裡面的好了。

實現一個日誌記錄程式的執行狀態,並且帶上時間資訊,可以寫一個類靈活呼叫。

MyLog.java

package com.example.networkaccessrestrictions;

import static android.content.ContentValues.TAG;

import android.content.Context;
import android.util.Log;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class MyLog {
    private static final String LOG_FILE_NAME = "service_log.txt";//寫入日誌的檔名

    private Context context;

    // 建構函式,接收 Context
    public MyLog(Context context) {
        this.context = context;
    }

    public void writeLog(String message) {
        File logFile = new File(context.getFilesDir(), LOG_FILE_NAME); // 使用內部儲存
        // 獲取當前日期
        LocalDateTime currentDateTime = LocalDateTime.now();//注意這裡用到的是currentDateTime,不是currentDate也不是currentDateTime

        // 定義日期格式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

        // 格式化當前日期
        String formattedDateTime = currentDateTime.format(formatter);

        // 輸出格式化後的日期
        //System.out.println("當前日期: " + formattedDateTime);

        try (FileWriter fileWriter = new FileWriter(logFile, true); // 以追加模式開啟檔案
             PrintWriter printWriter = new PrintWriter(fileWriter)) {

            printWriter.println(formattedDateTime + ":" + message); // 寫入時間戳和訊息
        } catch (IOException e) {
            Log.e(TAG, "Error writing to log file", e);
        }
    }
    
}

在其他程式碼裡把活動寫入日誌時只需要

MyLog mylog=new MyLog(this);
mylog.writeLog("阿巴阿巴阿巴阿巴阿巴");

即可。

那麼要上哪找這個日誌檔案呢?

直接去/data/data/your.package.name/files/ 目錄下找日誌就完事了。

Android開發:日誌功能備忘

相關文章