exportLogs method
导出日志(用于分享给开发者)
Implementation
Future<File?> exportLogs() async {
try {
final directory = await getApplicationDocumentsDirectory();
final logDir = Directory('${directory.path}/logs');
if (!await logDir.exists()) {
return null;
}
// 创建导出文件
final timestamp = DateTime.now().toIso8601String().split('.')[0].replaceAll(':', '-');
final exportFile = File('${directory.path}/logs_export_$timestamp.txt');
final sink = exportFile.openWrite();
// 写入所有日志文件
final files = await getLogFiles();
for (final filePath in files) {
final file = File(filePath);
sink.writeln('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
sink.writeln('File: ${file.path}');
sink.writeln('Size: ${await file.length()} bytes');
sink.writeln('Modified: ${await file.lastModified()}');
sink.writeln('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
sink.writeln();
await sink.addStream(file.openRead());
sink.writeln('\n');
}
await sink.close();
info('Logs exported to: ${exportFile.path}');
return exportFile;
} catch (e) {
error('Failed to export logs', e);
return null;
}
}