The messages are compressed as they are written: the file is never written uncompressed, and the extension of the algorithm is part of its name from the start (2024-01-02-1234.log.gz).
The current file is a plain text file. Once it is rolled, it is compressed to a new file with the extension of the algorithm, and the plain text file is deleted.
Choose according to how you read the current file:
Continuous needs no extra disk space and never pauses the logging to compress a big file. But the compressed stream is only completed when the file is rolled or when the provider is disposed, so while the application runs, some tools cannot read the end of the current file.
OnRoll keeps the current file readable by the usual text tools. The compression runs on the thread that writes the messages, so rolling a big file delays the next messages. When a file cannot be compressed, the plain text file is kept. The file being written when the application stops is not rolled, so it stays a plain text file.
Interactions with the other options
Append is ignored in Continuous mode: appending to a compressed file would produce a file that most tools cannot read entirely.
MaxFileSizeInBytes is compared with the size of the file on disk, so it accounts for the compression. As the compressed size is only known once the data is flushed, a file may be rolled slightly before the limit.