compressLogEntry method
Compresses a single log entry
Implementation
Future<CompressedLogEntry> compressLogEntry(
CompressibleLogEntry entry,
) async {
try {
final jsonString = jsonEncode(entry.toJson());
final uncompressedBytes = utf8.encode(jsonString);
final compressedBytes = await _compressBytes(
Uint8List.fromList(uncompressedBytes),
);
return CompressedLogEntry(
id: entry.id,
timestamp: entry.timestamp,
level: entry.level,
uncompressedSize: uncompressedBytes.length,
compressedSize: compressedBytes.length,
compressionRatio: compressedBytes.length / uncompressedBytes.length,
compressedData: compressedBytes,
);
} catch (e) {
throw Exception('Failed to compress log entry: $e');
}
}