compressLogEntry method

Future<CompressedLogEntry> compressLogEntry(
  1. CompressibleLogEntry entry
)

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');
  }
}