import 'dart:io'; import 'package:path_provider/path_provider.dart'; import 'package:logger/logger.dart'; import 'package:flutter/foundation.dart'; class FileLogger { static final FileLogger _instance = FileLogger._internal(); late Logger _logger; late File _logFile; late Directory tempDir; factory FileLogger() { return _instance; } FileLogger._internal(); Future init() async { tempDir = await getTemporaryDirectory(); _logFile = File('${tempDir.path}/apps_logs.txt'); _logger = Logger( filter: ProductionFilter(), printer: PrettyPrinter(), output: FileOutput(file: _logFile), ); } void d(String message) { debugPrint(message); _logger.d(message); } void i(String message) { debugPrint(message); _logger.i(message); } void w(String message) { debugPrint(message); _logger.w(message); } void e(String message, [dynamic error, StackTrace? stackTrace]) { debugPrint(message); _logger.e(message, error: error, stackTrace: stackTrace); } Future getLogContent() async { return await _logFile.readAsString(); } }