exportLogs method

Future<File?> exportLogs()

导出日志(用于分享给开发者)

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;
  }
}