# spins up a local webserver running at http://0.0.0.0:8000/
python3 -m http.server
接下来,创建一个logger处理器,并将该处理器添加到task的日志对象中。
import logging
import requests
import prefect
from prefect import task, Flow
from prefect.utilities.logging import get_logger
class MyHandler(logging.StreamHandler):
def emit(self, record):
requests.post("http://0.0.0.0:8000/", params=dict(msg=record.msg))
@task(name="Task A")
def task_a():
return 3
@task(name="Task B")
def task_b(x):
logger = prefect.context.get("logger")
logger.debug("Beginning to run Task B with input {}".format(x))
y = 3 * x + 1
logger.debug("Returning the value {}".format(y))
return y
with Flow("logging-example") as flow:
result = task_b(task_a)
# now attach our custom handler to Task B's logger
task_logger = get_logger("Task")
task_logger.addHandler(MyHandler())
if __name__ == "__main__":
flow.run()