@Andrew Huang I actually figured out a way to add FileHandler to specific flow. The part in Italic is the key. This solution is similar to the one I used in Prefect 1.0 but I have to add separately to both Flow and Task logger in Prefect 2.0.
import prefect
from prefect import flow, task
import logging
from datetime import datetime
@task
def string_prep(ct):
return ct.strftime("%H:%M:%S")
@flow()
def dynamic_parameter(ct=datetime.now()):
#Add File Handler to both flow and task logger
_flow_logger = logging.getLogger('prefect.flow_runs')_
_task_logger = logging.getLogger('prefect.task_runs')_
handler = logging.FileHandler(filename=<replace with your own log file path>)
handler.setFormatter(logging.Formatter("%(asctime)s.%(msecs)03d | %(levelname)-7s | %(name)s - %(message)s"))
_flow_logger.addHandler(handler)_
_task_logger.addHandler(handler)_
#Actual Flow Part
general_logger = prefect.logging.get_run_logger()
strings = string_prep(ct)
general_logger.info('see see ' + strings)