
# keenauth logs tail でログを追跡する

`keenauth logs tail` は、作業中に環境のログ（サインイン、セッション、トークン、MFA、攻撃対策）を `tail -f` のように追跡します。最新のレコードを新しいものから古いものへの順で表示したあと、一定の間隔で新しいレコードがないか確認し、見つかったものを順に表示します。停止するには Ctrl-C を押します。その後、コマンドは終了コード 0 で終了します。

このコマンドは `keenauth logs list` と同じレコードを読み取り、同じ権限（`logs:read`）が必要です。API キーと `keenauth login` のセッションのどちらでも動作します。

## 使用方法

```sh
keenauth logs tail --type authentication. --user usr_01j9z3k4m5n6p7q8r9s0t1v2w3
```

| フラグ | 説明 |
|---|---|
| `--type` | ログタイプの接頭辞（例: `authentication.` や `session.created`）。カンマ区切りまたは繰り返し指定でき、最大 20 個です。いずれかに一致するレコードが表示されます。 |
| `--user` | このユーザー（`usr_…`）のレコードのみ表示します。 |
| `--org` | この組織（`org_…`）のレコードのみ表示します。 |
| `--limit` | 追跡を開始する前に表示する最近のレコード数（1〜100）。デフォルト: 20。 |
| `--interval` | 2 回の確認の間隔（`1s` から `60s`）。デフォルト: `5s`。 |
| `--output`, `-o` | `table`、`json`、`yaml` のいずれか。フラグを省略すると、ターミナルでは表形式、それ以外では JSON で出力します。 |

無効なフィルターまたは間隔を指定した場合、リクエストを送信する前にコマンドは終了コード 2 で停止します。

## 出力

- `table`: レコードごとに 1 行で、時刻（UTC）、タイプ、結果、ユーザー、組織、ログ ID を表示します。値がない場合は `-` と表示されます。
- `json`: 1 レコードにつき 1 つの JSON オブジェクト（改行区切りの JSON）です。`keenauth logs get` が返すものと同じオブジェクトです。標準出力がターミナルでない場合の既定値なので、例えば `jq` にパイプできます。
- `yaml`: レコードごとに 1 つの YAML ドキュメントで、それぞれ `---` から始まります。

```sh
keenauth logs tail --type authentication.failed -o json | jq -r '.ip_country'
```

IP アドレス、ユーザーエージェント、識別子のヒントは、お使いの認証情報に [the logs API](/docs/api/management/logs/list) に記載の権限がある場合にのみ表示されます。

## 追跡の仕組み

logs API は最新のレコードから順に返し、待機パラメーターがないため、コマンドはポーリングを行います。最初のページの後、各確認では、表示済みの最新時刻以降のレコードを要求し、すでに表示したレコードはスキップするので、同じレコードが二重に表示されることはありません。確認ごとに、新しいレコードをすべて取得するまで結果ページをたどります（確認 1 回あたり最大 2,000 件）。お使いのプランの保持期間より古いレコードは返されません。

## 終了コード

| コード | 意味 |
|---|---|
| `0` | Ctrl-C で停止しました。 |
| `1` | サーバーエラーまたはネットワーク障害です。 |
| `2` | 使用方法のエラーです。フィルター、上限、間隔、出力形式のいずれかが無効です。リクエストは送信されていません。 |
| `3` | 認証情報がないか、サーバーが `401` または `403` を返しました。 |
| `4` | お使いのプランではこの機能は含まれていません（`plan_feature_unavailable` を伴う `403`）。 |
