diff --git a/lib/bootstrap.dart b/lib/bootstrap.dart index 3d816f9a..747d8fb9 100644 --- a/lib/bootstrap.dart +++ b/lib/bootstrap.dart @@ -1,6 +1,7 @@ import 'dart:async'; import 'dart:io'; +import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_native_splash/flutter_native_splash.dart'; import 'package:hiddify/core/app/app.dart'; @@ -40,20 +41,14 @@ Future lazyBootstrap(WidgetsBinding widgetsBinding) async { overrides: [sharedPreferencesProvider.overrideWithValue(sharedPreferences)], ); - // Loggy.initLoggy(logPrinter: const PrettyPrinter()); final filesEditor = container.read(filesEditorServiceProvider); await filesEditor.init(); - Loggy.initLoggy( - logPrinter: MultiLogPrinter( - const PrettyPrinter(), - FileLogPrinter(filesEditor.appLogsPath), - ), - ); - _loggy.debug( + initLoggers(container.read); + _loggy.info( "os: ${Platform.operatingSystem}(${Platform.operatingSystemVersion})", ); - _loggy.debug("basic setup took [${_stopWatch.elapsedMilliseconds}]ms"); + _loggy.info("basic setup took [${_stopWatch.elapsedMilliseconds}]ms"); final silentStart = container.read(prefsControllerProvider).general.silentStart; @@ -76,7 +71,24 @@ Future lazyBootstrap(WidgetsBinding widgetsBinding) async { if (!silentStart) FlutterNativeSplash.remove(); _stopWatch.stop(); - _loggy.debug("bootstrapping took [${_stopWatch.elapsedMilliseconds}]ms"); + _loggy.info("bootstrapping took [${_stopWatch.elapsedMilliseconds}]ms"); +} + +void initLoggers( + Result Function(ProviderListenable) read, +) { + const logLevel = kDebugMode ? LogLevel.all : LogLevel.info; + final logToFile = !Platform.isAndroid && !Platform.isIOS; + Loggy.initLoggy( + logPrinter: MultiLogPrinter( + const PrettyPrinter(), + logToFile + ? FileLogPrinter(read(filesEditorServiceProvider).appLogsPath) + : null, + ), + // ignore: avoid_redundant_argument_values + logOptions: const LogOptions(logLevel), + ); } Future initAppServices( diff --git a/lib/utils/custom_log_printer.dart b/lib/utils/custom_log_printer.dart index fb3cf5eb..ecbd04f8 100644 --- a/lib/utils/custom_log_printer.dart +++ b/lib/utils/custom_log_printer.dart @@ -6,12 +6,12 @@ class MultiLogPrinter extends LoggyPrinter { MultiLogPrinter(this.consolePrinter, this.filePrinter); final LoggyPrinter consolePrinter; - final LoggyPrinter filePrinter; + final LoggyPrinter? filePrinter; @override void onLog(LogRecord record) { consolePrinter.onLog(record); - filePrinter.onLog(record); + filePrinter?.onLog(record); } }