以下是在 Android 中写入日志并进行滚动覆盖的代码示例,该代码示例会确保日志文件大小始终保持在 1MB 以内:

import android.util.Log;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Logger {
    private static final String TAG = "Logger";
    private static final String LOG_FILE_NAME = "log.txt";
    private static final long MAX_FILE_SIZE = 1024 * 1024; // 1MB

    public static void writeLog(String message) {
        try {
            // 获取日志文件路径
            File logFile = new File(getLogFileDirectory(), LOG_FILE_NAME);

            // 检查日志文件大小
            if (logFile.exists() && logFile.length() >= MAX_FILE_SIZE) {
                // 如果日志文件超过最大大小,则删除旧日志文件
                logFile.delete();
            }

            // 写入日志
            FileWriter writer = new FileWriter(logFile, true);
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String timestamp = sdf.format(new Date());
            writer.append("[" + timestamp + "] " + message + "\n");
            writer.flush();
            writer.close();
        } catch (IOException e) {
            Log.e(TAG, "Error writing log file: " + e.getMessage());
        }
    }

    private static String getLogFileDirectory() {
        // 获取应用的外部存储目录,如果不存在则返回内部存储目录
        File externalDir = android.os.Environment.getExternalStorageDirectory();
        File appDir = new File(externalDir, "MyApp");
        if (!appDir.exists()) {
            appDir.mkdirs();
        }
        return appDir.getAbsolutePath();
    }
}

在你的代码中,可以使用Logger.writeLog('your message')来写入日志。这个方法会自动检查日志文件的大小,并在文件大小超过1MB时删除旧日志文件。请确保你的应用已经获取了写入外部存储的权限(WRITE_EXTERNAL_STORAGE)。

此外,你需要在AndroidManifest.xml文件中添加以下权限声明:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

请注意,这段代码是基于外部存储创建日志文件,如果你想将日志保存在内部存储中,可以修改getLogFileDirectory()方法返回应用的内部存储目录。

Android 日志滚动覆盖:1MB 文件大小限制代码示例

原文地址: https://www.cveoy.top/t/topic/mY7Y 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录