Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 1 addition & 16 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:flutter_logs/flutter_logs.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:frosty/frosty.dart';
import 'package:hive_ce_flutter/hive_flutter.dart';
Expand Down Expand Up @@ -176,21 +175,7 @@ void main() async {

if (!kIsWeb) {
//init logger
await FlutterLogs.initLogs(
logLevelsEnabled: [
LogLevel.INFO,
LogLevel.WARNING,
LogLevel.ERROR,
LogLevel.SEVERE,
],
timeStampFormat: TimeStampFormat.TIME_FORMAT_READABLE,
directoryStructure: DirectoryStructure.FOR_DATE,
logFileExtension: LogFileExtension.LOG,
logsWriteDirectoryName: 'MyLogs',
logsExportDirectoryName: 'MyLogs/Exported',
debugFileOperations: true,
isDebuggable: true,
);
await LoggerWrapper.initLogs();

LoggerWrapper.logInfo('main', 'initLogs', 'Init logs..');

Expand Down
7 changes: 2 additions & 5 deletions lib/screens/settings/app_settings_screen.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import 'dart:io';

import 'package:flutter/foundation.dart';
import 'package:flutter_logs/flutter_logs.dart';

import 'package:flutter/material.dart';
import 'package:peercoin/screens/settings/settings_helpers.dart';
Expand All @@ -11,7 +10,7 @@ import '../../providers/wallet_provider.dart';
import '../../providers/app_settings_provider.dart';
import '../../tools/app_localizations.dart';
import '../../tools/auth.dart';
import '../../tools/debug_log_handler.dart';
import '../../tools/logger_wrapper.dart';
import '../../tools/share_wrapper.dart';
import '../../widgets/buttons.dart';
import '../../widgets/double_tab_to_clipboard.dart';
Expand Down Expand Up @@ -40,8 +39,6 @@ class _AppSettingsScreenState extends State<AppSettingsScreen> {
await _settings.init(); //only required in home widget
await _activeWallets.init();

await initDebugLogHandler();

setState(() {
_initial = false;
});
Expand Down Expand Up @@ -171,7 +168,7 @@ class _AppSettingsScreenState extends State<AppSettingsScreen> {
PeerButton(
text: AppLocalizations.instance
.translate('app_settings_logs_export'),
action: () => FlutterLogs.exportLogs(),
action: () => LoggerWrapper.exportLogs(),
),
],
),
Expand Down
7 changes: 2 additions & 5 deletions lib/screens/wallet/wallet_list.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import 'dart:io';
import 'package:collection/collection.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_logs/flutter_logs.dart';
import 'package:loader_overlay/loader_overlay.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:peercoin/screens/wallet/roast/roast_wallet_home.dart';
Expand All @@ -20,7 +19,6 @@ import '../../tools/app_localizations.dart';
import '../../tools/app_routes.dart';
import '../../tools/auth.dart';
import '../../tools/background_sync.dart';
import '../../tools/debug_log_handler.dart';
import '../../tools/periodic_reminders.dart';
import '../../tools/price_ticker.dart';
import '../../tools/session_checker.dart';
Expand Down Expand Up @@ -557,9 +555,8 @@ class _WalletListScreenState extends State<WalletListScreen>
e.toString(),
);

//automatically toggle exportLogs for this event, since it is very likely app settings can not be accessed
await initDebugLogHandler();
FlutterLogs.exportLogs();
// Automatically export logs for this event, since app settings may be inaccessible.
await LoggerWrapper.exportLogs();

if (mounted) {
ScaffoldMessenger.of(context).showSnackBar(
Expand Down
54 changes: 0 additions & 54 deletions lib/tools/debug_log_handler.dart

This file was deleted.

99 changes: 80 additions & 19 deletions lib/tools/logger_wrapper.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,48 +3,109 @@
import 'dart:io';

import 'package:flutter/foundation.dart';
import 'package:flutter_logs/flutter_logs.dart';
import 'package:logger/logger.dart';
import 'package:path_provider/path_provider.dart';
import 'package:share_plus/share_plus.dart';

class LoggerWrapper {
static void logInfo(String tag, String subTag, String logMessage) {
if (kIsWeb) {
print('$tag $subTag $logMessage');
return;
static final MemoryOutput _memoryOutput = MemoryOutput(
bufferSize: 3000,
secondOutput: ConsoleOutput(),
);

static final Logger _logger = Logger(
filter: ProductionFilter(),
printer: PrettyPrinter(
methodCount: 0,
errorMethodCount: 5,
lineLength: 120,
colors: false,
printEmojis: false,
dateTimeFormat: DateTimeFormat.onlyTimeAndSinceStart,
),
output: _memoryOutput,
);

static bool _initialized = false;

static Future<void> initLogs() async {
if (kIsWeb || Platform.environment.containsKey('FLUTTER_TEST')) return;
if (_initialized) return;

await _logger.init;
_initialized = true;
}

static Future<void> exportLogs() async {
if (kIsWeb || Platform.environment.containsKey('FLUTTER_TEST')) return;

try {
final lines = <String>[];
for (final event in _memoryOutput.buffer) {
lines.addAll(event.lines);
}

if (lines.isEmpty) {
_logger.w('[LoggerWrapper][exportLogs] No logs available to export.');
return;
}

final tempDirectory = await getTemporaryDirectory();
final timestamp = DateTime.now().toIso8601String().replaceAll(':', '-');
final file = File('${tempDirectory.path}/peercoin_logs_$timestamp.txt');

await file.writeAsString('${lines.join('\n')}\n');
await Share.shareXFiles(
[
XFile(file.path),
],
);
} catch (e, stackTrace) {
_logger.e(
'[LoggerWrapper][exportLogs] Failed to export logs.',
error: e,
stackTrace: stackTrace,
);
}
if (Platform.environment.containsKey('FLUTTER_TEST')) return;
}

FlutterLogs.logInfo(
static void logInfo(String tag, String subTag, String logMessage) {
_log(
Level.info,
tag,
subTag,
logMessage,
);
}

static void logError(String tag, String subTag, String logMessage) {
if (kIsWeb) {
print('$tag $subTag $logMessage');
return;
}
if (Platform.environment.containsKey('FLUTTER_TEST')) return;

FlutterLogs.logError(
_log(
Level.error,
tag,
subTag,
logMessage,
);
}

static void logWarn(String tag, String subTag, String logMessage) {
_log(
Level.warning,
tag,
subTag,
logMessage,
);
}

static void _log(Level level, String tag, String subTag, String message) {
if (kIsWeb) {
print('$tag $subTag $logMessage');
print('[$tag][$subTag] $message');
return;
}
if (Platform.environment.containsKey('FLUTTER_TEST')) return;

FlutterLogs.logWarn(
tag,
subTag,
logMessage,
_logger.log(
level,
'[$tag][$subTag] $message',
);
}
}
17 changes: 8 additions & 9 deletions pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -504,15 +504,6 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
flutter_logs:
dependency: "direct main"
description:
path: "."
ref: HEAD
resolved-ref: "42949f2d7b4f5d8f5d7771d40d5497517da0a884"
url: "https://github.com/ced1check/flutter_logs"
source: git
version: "2.2.1"
flutter_markdown:
dependency: "direct main"
description:
Expand Down Expand Up @@ -901,6 +892,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.11"
logger:
dependency: "direct main"
description:
name: logger
sha256: "25aee487596a6257655a1e091ec2ae66bc30e7af663592cc3a27e6591e05035c"
url: "https://pub.dev"
source: hosted
version: "2.7.0"
logging:
dependency: transitive
description:
Expand Down
6 changes: 1 addition & 5 deletions pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,7 @@ dependencies:
collection: ^1.15.0-nullsafety.4
flutter_markdown: ^0.6.6
background_fetch: ^1.3.8
flutter_logs:
git:
url: https://github.com/ced1check/flutter_logs
refh: master
# TODO move back once https://github.com/umair13adil/flutter_logs/issues/69 or 73 is fixed
logger: ^2.7.0
auto_size_text: ^3.0.0
camera: ^0.10.0+4
path_provider: ^2.0.11
Expand Down
Loading