Android 开发:将系统日志打印到 SD 卡文件
您可以使用 Android 的 Log 类将系统日志打印到 SD 卡文件。以下是一个简单的示例代码:
import android.util.Log;
import java.io.File;
import java.io.FileOutputStream;
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';
public static void logToFile(String message) {
// 获取当前时间
String currentTime = new SimpleDateFormat('yyyy-MM-dd HH:mm:ss.SSS').format(new Date());
// 构建日志信息
String logMessage = currentTime + ' ' + message + '\n';
// 检查 SD 卡是否可用
if (!isSdCardAvailable()) {
Log.e(TAG, 'SD card is not available');
return;
}
// 获取 SD 卡根目录
File sdCardDir = android.os.Environment.getExternalStorageDirectory();
File logFile = new File(sdCardDir, LOG_FILE_NAME);
try {
// 创建文件输出流
FileOutputStream outputStream = new FileOutputStream(logFile, true);
// 写入日志信息
outputStream.write(logMessage.getBytes());
// 关闭输出流
outputStream.close();
} catch (IOException e) {
Log.e(TAG, 'Failed to write log to file: ' + e.getMessage());
}
}
private static boolean isSdCardAvailable() {
return android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
}
}
您可以在需要打印日志的地方调用 Logger.logToFile('Your log message') 来将日志写入 SD 卡文件。请确保在使用该功能之前已经添加了适当的权限到您的 AndroidManifest.xml 文件中:
<uses-permission android:name='android.permission.WRITE_EXTERNAL_STORAGE' />
另外,请注意在 Android 10(API 级别 29)及更高版本上,您需要动态请求运行时权限来访问外部存储。
原文地址: https://www.cveoy.top/t/topic/qqUO 著作权归作者所有。请勿转载和采集!