mirror of
https://github.com/Dr-Blank/Vaani.git
synced 2025-12-06 11:09:28 +00:00
* feat: add ability to get logs file from ui * test: add unit test for log line parsing in logs_provider * refactor: update all logs to obfuscate sensitive information * feat: generate dynamic zip file name for logs export * feat: enhance logging in audiobook player and provider for better debugging * refactor: extract user display logic into UserBar widget for offline access of settings and logs * feat: add About section with app metadata and source code link in YouPage
36 lines
1.2 KiB
Dart
36 lines
1.2 KiB
Dart
import 'dart:io';
|
|
|
|
import 'package:flutter/foundation.dart';
|
|
import 'package:logging/logging.dart';
|
|
import 'package:logging_appenders/logging_appenders.dart';
|
|
import 'package:path_provider/path_provider.dart';
|
|
import 'package:vaani/shared/extensions/duration_format.dart';
|
|
|
|
Future<String> getLoggingFilePath() async {
|
|
final Directory directory = await getApplicationDocumentsDirectory();
|
|
return '${directory.path}/vaani.log';
|
|
}
|
|
|
|
Future<void> initLogging() async {
|
|
final formatter = const DefaultLogRecordFormatter();
|
|
if (kReleaseMode) {
|
|
Logger.root.level = Level.INFO; // is also the default
|
|
// Write to a file
|
|
RotatingFileAppender(
|
|
baseFilePath: await getLoggingFilePath(),
|
|
formatter: formatter,
|
|
).attachToLogger(Logger.root);
|
|
} else {
|
|
Logger.root.level = Level.FINE; // Capture all logs
|
|
RotatingFileAppender(
|
|
baseFilePath: await getLoggingFilePath(),
|
|
formatter: formatter,
|
|
).attachToLogger(Logger.root);
|
|
Logger.root.onRecord.listen((record) {
|
|
// Print log records to the console
|
|
debugPrint(
|
|
'${record.loggerName}: ${record.level.name}: ${record.time.time}: ${record.message}',
|
|
);
|
|
});
|
|
}
|
|
}
|