Help with a SimpleCSVLogger

I have been struggling to setup a SimpleCSVLogger demonstration all night! I seem to be missing something really important in this demo here.

import gradio as gr

def ask(txt):
    print("Asked!")
    return "Fun", "Times"

desc = "Description"
article_text = "Article Text!"

with gr.Blocks(title=desc, 
               description=desc, 
               article=article_text,
               allow_flagging="manual",
               flagging_options=["Innacurate", "Off Topic"],
               flagging_dir="flags",
               flagging_callback=gr.SimpleCSVLogger(),
               analytics_enabled=True
               ) as demo:
    gr.Markdown(
    """
    # Maryland Kids Law!
    Start typing below to see the output.
    """)
    txt = gr.Textbox(label="Ask your question:", lines=5, placeholder="Is it ok to punch a kid?")
    txt_2 = gr.Textbox(value="Your Question will appear here.", label="Output", lines=5)
    txt_3 = gr.Textbox(value="The references cited to answer your question will appear here.", label="References", lines=5)
    btn = gr.Button(value="Ask!")
    btn.click(ask, inputs=txt, outputs=[txt_2, txt_3])
    gr.examples=[
        ["What a beautiful morning for a walk!"],
        ["It was the best of times, it was the worst of times."]
    ]
    gr.HTML("hello world!")
demo.launch()

First, it doesnโ€™t show the flagging buttons specified.
Second, it doesnโ€™t seem to be logging anything.

When I run this same code locally, a folder โ€œoutputโ€ is created with jsons of each time itโ€™s run.

hi @calculated-leap-vent

Here is how to use the CSVLogger with blocks, you can read more here

import gradio as gr


def ask(txt):
    print("Asked!")
    return "Fun", "Times"


desc = "Description"
article_text = "Article Text!"

callback = gr.CSVLogger()


with gr.Blocks() as demo:
    gr.Markdown(
        """
    # Maryland Kids Law!
    Start typing below to see the output.
    """)
    txt = gr.Textbox(label="Ask your question:", lines=5,
                     placeholder="Is it ok to punch a kid?")
    txt_2 = gr.Textbox(placeholder="Your Question will appear here.",
                       label="Output", lines=5)
    txt_3 = gr.Textbox(
        placeholder="The references cited to answer your question will appear here.", label="References", lines=5)
    btn = gr.Button(value="Ask!")
    btn.click(ask, inputs=[txt], outputs=[txt_2, txt_3])

    gr.examples = [
        ["What a beautiful morning for a walk!"],
        ["It was the best of times, it was the worst of times."]
    ]
    gr.HTML("hello world!")

    callback.setup([txt, txt_2, txt_3], "flagged_data_points")
    # We can choose which components to flag -- in this case, we'll flag all of them
    btn.click(lambda *args: callback.flag(args),
              [txt, txt_2, txt_3], None, preprocess=False)

demo.launch()