34 lines
689 B
Dart
34 lines
689 B
Dart
import 'dart:io';
|
|
|
|
import 'package:loggy/loggy.dart';
|
|
|
|
class FileLogPrinter extends LoggyPrinter {
|
|
FileLogPrinter(
|
|
String filePath, {
|
|
this.minLevel = LogLevel.debug,
|
|
}) : _logFile = File(filePath);
|
|
|
|
final File _logFile;
|
|
final LogLevel minLevel;
|
|
|
|
late final _sink = _logFile.openWrite(
|
|
mode: FileMode.writeOnly,
|
|
);
|
|
|
|
@override
|
|
void onLog(LogRecord record) {
|
|
final time = record.time.toIso8601String().split('T')[1];
|
|
_sink.writeln("$time - $record");
|
|
if (record.error != null) {
|
|
_sink.writeln(record.error);
|
|
}
|
|
if (record.stackTrace != null) {
|
|
_sink.writeln(record.stackTrace);
|
|
}
|
|
}
|
|
|
|
void dispose() {
|
|
_sink.close();
|
|
}
|
|
}
|