If we are enabling async_insert, query log missing all insert queries.

We are using log for monitoring, too (inserts time, inserts frequency etc), and with  async_insert query_log is empty. Maybe log can be written anyway?
bool table_prefers_large_blocks = table->prefersLargeBlocks();
        out.addSource(std::make_shared<SquashingChunksTransform>(
            out.getInputHeader(),
            table_prefers_large_blocks ? settings.min_insert_block_size_rows : settings.max_block_size,
            table_prefers_large_blocks ? settings.min_insert_block_size_bytes : 0));
    }
    auto counting = std::make_shared<CountingTransform>(out.getInputHeader(), thread_status);
    counting->setProcessListElement(context_ptr->getProcessListElement());
    out.addSource(std::move(counting));
    return out;
}
BlockIO InterpreterInsertQuery::execute()
{
    const Settings & settings = getContext()->getSettingsRef();
    auto & query = query_ptr->as<ASTInsertQuery &>();
    QueryPipelineBuilder pipeline;
    StoragePtr table = getTable(query);
    if (query.partition_by && !table->supportsPartitionBy())
        throw Exception(ErrorCodes::NOT_IMPLEMENTED, "PARTITION BY clause is not supported by storage");
    auto table_lock = table->lockForShare(getContext()->getInitialQueryId(), settings.lock_acquire_timeout);
    auto metadata_snapshot = table->getInMemoryMetadataPtr();
    auto query_sample_block = getSampleBlock(query, table, metadata_snapshot);
    if (!query.table_function)
        getContext()->checkAccess(AccessType::INSERT, query.table_id, query_sample_block.getNames());
    bool is_distributed_insert_select = false;
    if (query.select && table->isRemote() && settings.parallel_distributed_insert_select)
    {
        
        if (auto maybe_pipeline = table->distributedWrite(query, getContext()))
        {