Logging.日志
日志配置
Prefect具有多种从task生成日志的方式。
Prefect内置Logger
Prefect的日志级别由prefect.config.logging.level控制,默认为INFO。但是设置只会影响Prefect内置logger对象,而不是Python全局的logger对象。
要更改默认日志级别,请设置环境变量PREFECTLOGGINGLEVEL=DEBUG。
task记录日志
要访问Prefect配置的logger对象,请使用prefect.utilities.logging.get_logger(<名称可选>)。如果你不提供名称,将收到Prefect的根logger对象。
task类
在task类里面使用self.logger:
task装饰器
在@task装饰器生成的task的实例运行里,从上下文获取logger:
确保仅在task运行时访问上下文
运行task时,将填充Prefect上下文信息。因此,仅应在task运行时访问上下文的logger对象。例如,将无法工作的一个实例:
日志输出
Prefect的task本身就支持将标准输出的输出转发到logger对象。可以通过在task上设置log_stdout=True来启用此功能。
其他Logger库
当使用日志配置时,可以设置许多其他库(例如boto3和snowflake.connector)发出自己的内部日志。你甚至可以为团队使用具有相同日志功能提供内部共享库。
如果通过标准日志库执行此操作,则可以执行以下操作:
鉴于Prefect已经提供了一种配置本地日志和云日志记录的方法,你可以使用这些第三方的日志库,以使它们继承Prefect日志记录配置以在本地流传输并显示在云端。
为了使其正常工作,你需要提供一个列表至prefect.config.logging.extra_loggers。
这是TOML配置的样子:
当做环境变量配置:
Last updated