メインコンテンツへスキップ
利用している環境やニーズに応じて、アプリケーションにおける Weave トレースのレベルを制御するためのさまざまなオプションがあります。

環境変数

プログラム全体でトレースを無条件に無効化したい場合は、環境変数 WEAVE_DISABLEDtrue に設定してください。 WEAVE_DISABLED は関数定義時に一度だけ読み込まれます。この変数を使って、実行時にトレースを切り替えることはできません。

クライアントの初期化

特定の初期化処理に対して、ある条件に応じてトレースを有効にしたい場合があります。そのような場合は、disabled フラグを init の設定で指定してクライアントを初期化できます。
import weave

# Initialize the client
client = weave.init(..., settings={"disabled": True})

コンテキストマネージャー

特定のコードブロックについて条件付きで tracing を無効化するには、tracing コンテキストマネージャーを使用できます。with tracing_disabled() を使用すると、with ブロック内で実行される関数呼び出しに対してのみ tracing を抑制します。どの呼び出しをログ対象外にするかを範囲指定するために、アプリケーションコード内で使用します。
import weave
from weave.trace.context.call_context import tracing_disabled

client = weave.init('your-team/your-project-name')

@weave.op
def my_op():
    ...

with tracing_disabled():
    my_op()
tracing の動作は関数が定義された時点で固定されますが、アプリケーションロジックと組み合わせることで、実行時に制御できます。たとえば、コンテキストマネージャーを条件分岐でラップして、実行時の値に基づいて tracing を動的に有効化または無効化できます。
if should_trace:
    my_op()
else:
    with tracing_disabled():
        my_op()