darwin
07/02/2024, 9:00 AMMarvin
07/02/2024, 9:00 AMpython
from prefect import flow, task, get_run_logger
from loguru import logger
# Define a sink function for Loguru to send logs to Prefect
def prefect_log_sink(msg):
    logger = get_run_logger()
    level_method = getattr(logger, msg.record["level"].name.lower(), "info")
    level_method(msg)
# Configure Loguru to send logs to the Prefect logger
logger.remove()  # Remove the default Loguru logging to stderr
logger.add(prefect_log_sink)
@task
def my_task():
    <http://logger.info|logger.info>("This is a log from Loguru inside a Prefect task.")
@flow
def my_flow():
    my_task()
if __name__ == "__main__":
    my_flow()prefect_log_sink