import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:synchronized/synchronized.dart'; export 'package:starcitizen_doctor/generated/l10n.dart'; var _logLock = Lock(); File? _logFile; void dPrint(src) async { if (kDebugMode) { print(src); return; } await _logLock.synchronized(() async { try { await _logFile?.writeAsString("$src\n", mode: FileMode.append); } catch (_) {} }); } Future initDPrintFile(String applicationSupportDir) async { final now = DateTime.now(); final logFile = File("$applicationSupportDir/logs/${now.millisecondsSinceEpoch}.log"); await logFile.create(recursive: true); _logFile = logFile; final logsDir = Directory("$applicationSupportDir/logs"); await for (final files in logsDir.list()) { if (files is File) { final stat = await files.stat(); if (stat.type == FileSystemEntityType.file && now.difference(await files.lastModified()).inDays > 7) { await files.delete(); } } } } File? getDPrintFile() { return _logFile; }