import 'dart:io'; import 'package:PiliPlus/utils/json_file_handler.dart'; import 'package:PiliPlus/utils/storage_pref.dart'; import 'package:catcher_2/utils/log_printer.dart'; import 'package:flutter/foundation.dart'; import 'package:logger/logger.dart'; import 'package:path/path.dart' as p; import 'package:path_provider/path_provider.dart'; final logger = Logger( filter: ProductionFilter(), printer: PrettyLogPrinter( dateTimeFormat: PrettyLogPrinter.toEncodableFallback, ), level: kDebugMode ? .trace : .warning, ); abstract final class LoggerUtils { static File? _logFile; static Future getLogsPath() async { if (_logFile != null) return _logFile!; String dir = (await getApplicationDocumentsDirectory()).path; final String filename = p.join(dir, '.pili_logs.json'); final File file = File(filename); if (!file.existsSync()) { await file.create(recursive: true); } return _logFile = file; } static Future clearLogs() async { try { if (Pref.enableLog) { await JsonFileHandler.add( (raf) => raf.setPosition(0).then((raf) => raf.truncate(0)), ); } else { final file = await getLogsPath(); await file.writeAsBytes(const [], flush: true); } } catch (e) { // if (kDebugMode) debugPrint('Error clearing file: $e'); return false; } return true; } }