logging_util.dart 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import 'dart:io';
  2. import 'package:archive/archive_io.dart';
  3. import 'package:flutter_email_sender/flutter_email_sender.dart';
  4. import 'package:path_provider/path_provider.dart';
  5. class LoggingUtil {
  6. LoggingUtil._privateConstructor();
  7. static final LoggingUtil instance = LoggingUtil._privateConstructor();
  8. bool _isInProgress = false;
  9. Future<void> emailLogs() async {
  10. if (_isInProgress) {
  11. return;
  12. }
  13. _isInProgress = true;
  14. final tempPath = (await getTemporaryDirectory()).path;
  15. final zipFilePath = tempPath + "/logs.zip";
  16. Directory logsDirectory = Directory(tempPath + "/logs");
  17. var encoder = ZipFileEncoder();
  18. encoder.create(zipFilePath);
  19. encoder.addDirectory(logsDirectory);
  20. encoder.close();
  21. final Email email = Email(
  22. body: 'Logs attached.',
  23. subject: 'Error, error, share the terror.',
  24. recipients: ['android-support@ente.io'],
  25. cc: ['vishnumohandas@gmail.com'],
  26. attachmentPaths: [zipFilePath],
  27. isHTML: false,
  28. );
  29. await FlutterEmailSender.send(email);
  30. _isInProgress = false;
  31. }
  32. }