

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ログ
<a name="gg-cli-logs"></a>

`logs` コマンドを使用して、コアデバイスの Greengrass ログを分析します。

**サブコマンド**
+ [get](#logs-get)
+ [list-keywords](#logs-list-keywords)
+ [list-log-files](#logs-list-log-files)

## get
<a name="logs-get"></a>

Greengrass ログファイルを収集、フィルタリング、視覚化します。このコマンドは JSON 形式のログファイルのみをサポートします。nucleus 設定の[ログ記録形式](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-logging-format)を指定できます。

**概要**  

```
greengrass-cli logs get
    [--log-dir path/to/a/log/folder]
    [--log-file path/to/a/log/file]
    [--follow true | false ]
    [--filter <filter> ]
    [--time-window <start-time>,<end-time> ]
    [--verbose ]
    [--no-color ]
    [--before <value> ]
    [--after <value> ]
    [--syslog ]
    [--max-long-queue-size <value> ]
```

**引数**:  
+ `--log-dir`、`-ld`。ログファイルをチェックするディレクトリのパス (例:**`/greengrass/v2`/logs** )。`--syslog` と併用しないでください。指定する追加ディレクトリに個別の引数を使用します。少なくくとも `--log-dir`、`--log-file` の内いずれかを指定する必要があります。1 つのコマンドで 両方の引数を使用することもできます。
+ `--log-file`、`-lf`。使用するログディレクトリへのパス。指定する追加ディレクトリに個別の引数を使用します。少なくくとも `--log-dir`、`--log-file` の内いずれかを指定する必要があります。1 つのコマンドで 両方の引数を使用することもできます。
+ `--follow`、`-fol`。発生するに従って、ログの更新を表示します。Greengrass CLI は引き続き実行され、指定されたログから読み取られます。時間ウィンドウを指定している場合、Greengrass CLI はすべての時間ウィンドウが終了した後にログのモニタリングを停止します。
+ `--filter`、`-f`。フィルターとして使用するキーワード、正規表現、またはキーと値のペア。この値は、文字列、正規表現、またはキーと値のペアとして指定します。指定する追加フィルターごとに個別の引数を使用します。

  評価後、単一の引数内に指定されている複数のフィルターは OR 演算子で区切られ、追加の引数で指定されたフィルターは AND 演算子で結合されます。たとえば、コマンドに `--filter "installed" --filter "name=alpha,name=beta"` を含めた場合、Greengrass CLI は、`alpha` または `beta` を値に持つ `installed` キーワードと `name` キーの両方が含まれるログメッセージをフィルタリングして表示します。
+ `--time-window`、`-t`。ログ情報を表示する時間ウィンドウ。正確なタイムスタンプと相対オフセットの両方を使用できます。`<begin-time>,<end-time>` 形式でこの情報を提供する必要があります。開始時間または終了時間を指定しなかった場合、そのオプションの値はデフォルトで、現在のシステムの日付と時刻に設定されます。指定する追加時間ウィンドウごとに個別の引数を使用します。

  Greengrass CLI では、次の形式のタイムスタンプがサポートされています。
  + `yyyy-MM-DD`、例えば `2020-06-30` など。この形式を使用すると、時間のデフォルトは 00:00:00 になります。

    `yyyyMMDD`、例えば `20200630` など。この形式を使用すると、時間のデフォルトは 00:00:00 になります。

    `HH:mm:ss`、例えば `15:30:45` など。この形式を使用すると、日付は現在のシステム日付にデフォルト設定されます。

    `HH:mm:ssSSS`、例えば `15:30:45` など。この形式を使用すると、日付は現在のシステム日付にデフォルト設定されます。

    `YYYY-MM-DD'T'HH:mm:ss'Z'`、例えば `2020-06-30T15:30:45Z` など。

    `YYYY-MM-DD'T'HH:mm:ss`、例えば `2020-06-30T15:30:45` など。

    `yyyy-MM-dd'T'HH:mm:ss.SSS`、例えば `2020-06-30T15:30:45.250` など。

  相対オフセットは、現在のシステム時刻からの時間オフセットを指定します。Greengrass CLI は、相対オフセットに次の形式をサポートしています：`+|-[<value>h|hr|hours][valuem|min|minutes][value]s|sec|seconds`。

  例えば、現在時刻の 1 時間前から 2 時間 15 分前までの時間帯を指定する以下の引数は、`--time-window -2h15min,-1hr` です。
+ `--verbose`。 ログメッセージのすべてのフィールドを表示します。`--syslog` と併用しないでください。
+ `--no-color`、`-nc`。カラーコーディングを削除します。ログメッセージのデフォルトのカラーコードでは、太字の赤いテキストが使用されます。ANSI エスケープシーケンスを使用するため、UNIX 互換の端末のみをサポートします。
+ `--before`、`-b`。一致したログエントリの前に表示する行数。デフォルトは 0 です。
+ `--after`、`-a`。一致したログエントリの後に表示する行数。デフォルトは 0 です。
+ `--syslog`。RFC3164 で定義された syslog プロトコルを使用して、すべてのログファイルを処理します。`--log-dir` および`--verbose` と併用しないでください。syslog プロトコルでは、次の形式を使用します: `"<$Priority>$Timestamp $Host $Logger ($Class): $Message"`。ログファイルを指定しなかった場合、Greengrass CLI は次の場所からログメッセージを読み取ります: `/var/log/messages`、`/var/log/syslog`、または`/var/log/system.log`。

  AWS IoT Greengrass は、現在 Windows コアデバイスにこの機能をサポートしていません。
+ `--max-log-queue-size`、`-m`。メモリに割り当てるログエントリの最大数。このオプションを使用して、メモリ使用量を最適化します。デフォルトは 100 です。

**出力**:  
次の例は、このコマンドを実行したときに生成される出力を示しています。  

```
$ sudo greengrass-cli logs get --verbose \
    --log-file /greengrass/v2/logs/greengrass.log \
    --filter deployment,serviceName=DeploymentService \
    --filter level=INFO \
    --time-window 2020-12-08T01:11:17,2020-12-08T01:11:22

2020-12-08T01:11:17.615Z [INFO] (pool-2-thread-14) com.aws.greengrass.deployment.DeploymentService: Current deployment finished. {DeploymentId=44d89f46-1a29-4044-ad89-5151213dfcbc, serviceName=DeploymentService, currentState=RUNNING}
2020-12-08T01:11:17.675Z [INFO] (pool-2-thread-14) com.aws.greengrass.deployment.IotJobsHelper: Updating status of persisted deployment. {Status=SUCCEEDED, StatusDetails={detailed-deployment-status=SUCCESSFUL}, ThingName=MyThing, JobId=22d89f46-1a29-4044-ad89-5151213dfcbc
```

## list-keywords
<a name="logs-list-keywords"></a>

ログファイルのフィルタリングに使用できる推奨キーワードを表示します。

**概要**  

```
greengrass-cli logs list-keywords [arguments]
```

**引数**:  
なし

**出力**:  
次の例は、このコマンドを実行したときに生成される出力を示しています。  

```
$ sudo greengrass-cli logs list-keywords

Here is a list of suggested keywords for Greengrass log:
level=$str
thread=$str
loggerName=$str
eventType=$str
serviceName=$str
error=$str
```

```
$ sudo greengrass-cli logs list-keywords --syslog

Here is a list of suggested keywords for syslog:
priority=$int
host=$str
logger=$str
class=$str
```

## list-log-files
<a name="logs-list-log-files"></a>

指定したディレクトリにあるログファイルを表示します。

**概要**  

```
greengrass-cli logs list-log-files [arguments]
```

**引数**:  
`--log-dir`、`-ld`。ログファイルをチェックするディレクトリのパス。

**出力**:  
次の例は、このコマンドを実行したときに生成される出力を示しています。  

```
$ sudo greengrass-cli logs list-log-files -ld /greengrass/v2/logs/

/greengrass/v2/logs/aws.greengrass.Nucleus.log
/greengrass/v2/logs/main.log
/greengrass/v2/logs/greengrass.log
Total 3 files found.
```