I really love clickhouse logs. They helped me a lot of times, they 'tell stories' :) 

But on limited env (like tiny cloud instances) people often set the main log level from trace to information, or just disable it at all, keeping err log only - and motivation is very simple - logs are quite big, they take disk space & part of disk bandwidth - and that effect is very visible on tiny instances.

Maybe if we would compress them with LZ4 (streaming) it will be fewer reasons to disable them? 

What do you think of that? (I'm not totally convinced if it's good, because logs usually are expected to be straight and simple). 
{
            LOG_FATAL(log, "Checksum of the binary: {}, integrity check passed.", calculated_binary_hash);
        }
        else
        {
            LOG_FATAL(log, "Calculated checksum of the ClickHouse binary ({0}) does not correspond"
                " to the reference checksum stored in the binary ({1})."
                " It may indicate one of the following:"
                " - the file was changed just after startup;"
                " - the file is damaged on disk due to faulty hardware;"
                " - the loaded executable is damaged in memory due to faulty hardware;"
                " - the file was intentionally modified;"
                " - logical error in code."
                , calculated_binary_hash, daemon.stored_binary_hash);
        }
#endif
        
        if (collectCrashLog)
            collectCrashLog(sig, thread_num, query_id, stack_trace);
        
        if (sig != SanitizerTrap)
            SentryWriter::onFault(sig, error_message, stack_trace);
        
        if (thread_ptr)
            thread_ptr->onFatalError();
    }
};
#if defined(SANITIZER)
extern "C" void __sanitizer_set_death_callback(void (*)());
static void sanitizerDeathCallback()