有用なログの条件

一般的なログディレクティブに加えて、リモートログストリーミングの設定時に以下の条件をログに適用できます。

エラーのみをログに記録する

通常すべてを記録する汎用ログを使用し、エラーが発生した際により詳細なログが必要な場合、以下のようにしてエラーのみをログに記録することができます。

1
fastly_info.state == "ERROR"

500エラーのみをログに記録することも可能です。

1
resp.status >= 500 && resp.status < 600`

Dictionary を使用して特定の URL のみをログに記録する

以下のように、dictionary を使用して (例: urls_to_log)、問題のある特定の URL をログに記録することができます。

1
table.lookup(urls_to_log, req.url.path) == "log"

ある URL に問題が生じた場合、API を使用してその URL のパスを「log」という値を持つキーとしてディクショナリに追加することで、その URL の記録を開始することができます。

ログのサンプル

トラフィックの多いサービスを運用している場合、randombool の VCL 関数を条件として使用し、一部のリクエストのみをログに記録することができます。以下の例では、すべてのリクエストの1パーセントのみがログに記録されます。

1
randombool(1,100)

これを dictionary と組み合わせることで、サービスの新しいバージョンをデプロイすることなく、ログに記録されるリクエストの割合を変更することができます。以下の例では service_variables という名前の dictionary を使用しています。

1
randombool(std.atoi(table.lookup(service_variables, "logging_percentage", "0")), 100)

上記の例では logging_percentage キーが存在しない場合、何もログに記録されません。

false を使用してカスタム VCL でログ文字列を作成する

false 条件を使用してカスタム VCL でログ文字列を作成できます。この条件を使用することで、Fastly のログオブジェクトに何も送信されないようにすることができます。

Back to Top