spotube/lib/models/Logger.dart
Kingkor Roy Tirtho 0cf5bfea50 implemented custom logger
[android] fixed solid color screen until the player on the navbar is stopped
2022-03-23 11:51:58 +06:00

26 lines
785 B
Dart

import 'dart:io';
import 'package:logger/logger.dart';
import 'package:path_provider/path_provider.dart';
import 'package:path/path.dart' as path;
_SpotubeLogger createLogger<T>(T owner) =>
_SpotubeLogger(owner is String ? owner : owner.toString());
class _SpotubeLogger extends Logger {
String owner;
_SpotubeLogger(this.owner);
@override
void log(Level level, message, [error, StackTrace? stackTrace]) {
getApplicationDocumentsDirectory().then((dir) async {
final file = File(path.join(dir.path, ".spotube_logs"));
if (level == Level.error) {
await file.writeAsString("[${DateTime.now()}]\n$message\n$stackTrace",
mode: FileMode.writeOnlyAppend);
}
});
super.log(level, "[$owner] $message", error, stackTrace);
}
}