Change logger to print in console
This commit is contained in:
@@ -4,7 +4,6 @@ import 'dart:io';
|
|||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_displaymode/flutter_displaymode.dart';
|
import 'package:flutter_displaymode/flutter_displaymode.dart';
|
||||||
import 'package:flutter_loggy/flutter_loggy.dart';
|
|
||||||
import 'package:flutter_native_splash/flutter_native_splash.dart';
|
import 'package:flutter_native_splash/flutter_native_splash.dart';
|
||||||
import 'package:hiddify/core/analytics/analytics_controller.dart';
|
import 'package:hiddify/core/analytics/analytics_controller.dart';
|
||||||
import 'package:hiddify/core/app_info/app_info_provider.dart';
|
import 'package:hiddify/core/app_info/app_info_provider.dart';
|
||||||
@@ -27,7 +26,6 @@ import 'package:hiddify/features/window/notifier/window_notifier.dart';
|
|||||||
import 'package:hiddify/singbox/service/singbox_service_provider.dart';
|
import 'package:hiddify/singbox/service/singbox_service_provider.dart';
|
||||||
import 'package:hiddify/utils/utils.dart';
|
import 'package:hiddify/utils/utils.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:loggy/loggy.dart';
|
|
||||||
import 'package:sentry_flutter/sentry_flutter.dart';
|
import 'package:sentry_flutter/sentry_flutter.dart';
|
||||||
|
|
||||||
Future<void> lazyBootstrap(
|
Future<void> lazyBootstrap(
|
||||||
@@ -36,8 +34,7 @@ Future<void> lazyBootstrap(
|
|||||||
) async {
|
) async {
|
||||||
FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding);
|
FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding);
|
||||||
|
|
||||||
Loggy.initLoggy(logPrinter: const PrettyDeveloperPrinter());
|
LoggerController.preInit();
|
||||||
|
|
||||||
FlutterError.onError = Logger.logFlutterError;
|
FlutterError.onError = Logger.logFlutterError;
|
||||||
WidgetsBinding.instance.platformDispatcher.onError =
|
WidgetsBinding.instance.platformDispatcher.onError =
|
||||||
Logger.logPlatformDispatcherError;
|
Logger.logPlatformDispatcherError;
|
||||||
|
|||||||
@@ -1,7 +1,58 @@
|
|||||||
|
// ignore_for_file: avoid_print
|
||||||
|
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:loggy/loggy.dart';
|
import 'package:loggy/loggy.dart';
|
||||||
|
|
||||||
|
class ConsolePrinter extends LoggyPrinter {
|
||||||
|
const ConsolePrinter({
|
||||||
|
this.showColors = false,
|
||||||
|
});
|
||||||
|
|
||||||
|
final bool showColors;
|
||||||
|
|
||||||
|
static final _levelColors = {
|
||||||
|
LogLevel.debug:
|
||||||
|
AnsiColor(foregroundColor: AnsiColor.grey(0.5), italic: true),
|
||||||
|
LogLevel.info: AnsiColor(foregroundColor: 35),
|
||||||
|
LogLevel.warning: AnsiColor(foregroundColor: 214),
|
||||||
|
LogLevel.error: AnsiColor(foregroundColor: 196),
|
||||||
|
};
|
||||||
|
|
||||||
|
@override
|
||||||
|
void onLog(LogRecord record) {
|
||||||
|
final colorize = showColors && stdout.supportsAnsiEscapes;
|
||||||
|
final time = record.time.toIso8601String().split('T')[1];
|
||||||
|
final callerFrame = record.callerFrame == null
|
||||||
|
? ' '
|
||||||
|
: ' (${record.callerFrame?.location}) ';
|
||||||
|
|
||||||
|
final String logLevel;
|
||||||
|
if (colorize) {
|
||||||
|
logLevel = record.level.name.toUpperCase().padRight(8);
|
||||||
|
} else {
|
||||||
|
logLevel = "[${record.level.name.toUpperCase()}]".padRight(10);
|
||||||
|
}
|
||||||
|
|
||||||
|
final color =
|
||||||
|
showColors ? levelColor(record.level) ?? AnsiColor() : AnsiColor();
|
||||||
|
|
||||||
|
print(
|
||||||
|
color(
|
||||||
|
'$time $logLevel [${record.loggerName}]$callerFrame${record.message}',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
if (record.stackTrace != null) {
|
||||||
|
print(record.stackTrace);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
AnsiColor? levelColor(LogLevel level) {
|
||||||
|
return _levelColors[level];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class FileLogPrinter extends LoggyPrinter {
|
class FileLogPrinter extends LoggyPrinter {
|
||||||
FileLogPrinter(
|
FileLogPrinter(
|
||||||
String filePath, {
|
String filePath, {
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:flutter_loggy/flutter_loggy.dart';
|
|
||||||
import 'package:hiddify/core/logger/custom_logger.dart';
|
import 'package:hiddify/core/logger/custom_logger.dart';
|
||||||
import 'package:hiddify/utils/custom_loggers.dart';
|
import 'package:hiddify/utils/custom_loggers.dart';
|
||||||
import 'package:loggy/loggy.dart';
|
import 'package:loggy/loggy.dart';
|
||||||
@@ -18,9 +17,13 @@ class LoggerController extends LoggyPrinter with InfraLogger {
|
|||||||
|
|
||||||
static late LoggerController _instance;
|
static late LoggerController _instance;
|
||||||
|
|
||||||
|
static void preInit() {
|
||||||
|
Loggy.initLoggy(logPrinter: const ConsolePrinter());
|
||||||
|
}
|
||||||
|
|
||||||
static void init(String appLogPath) {
|
static void init(String appLogPath) {
|
||||||
_instance = LoggerController(
|
_instance = LoggerController(
|
||||||
const PrettyDeveloperPrinter(),
|
const ConsolePrinter(),
|
||||||
{"app": FileLogPrinter(appLogPath)},
|
{"app": FileLogPrinter(appLogPath)},
|
||||||
);
|
);
|
||||||
Loggy.initLoggy(logPrinter: _instance);
|
Loggy.initLoggy(logPrinter: _instance);
|
||||||
|
|||||||
Reference in New Issue
Block a user