2024-10-03 05:54:29 -04:00
|
|
|
import 'package:flutter/foundation.dart';
|
|
|
|
|
import 'package:logging/logging.dart';
|
|
|
|
|
import 'package:logging_appenders/logging_appenders.dart';
|
2025-11-14 16:34:42 +08:00
|
|
|
import 'package:vaani/globals.dart';
|
2024-10-03 05:54:29 -04:00
|
|
|
import 'package:vaani/shared/extensions/duration_format.dart';
|
|
|
|
|
|
|
|
|
|
Future<String> getLoggingFilePath() async {
|
2025-11-14 16:34:42 +08:00
|
|
|
// final Directory directory = await getApplicationDocumentsDirectory();
|
|
|
|
|
return '${appStorageDir.path}/$appName.log';
|
2024-10-03 05:54:29 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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}',
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|