# HTTP API

> Query log entries using the Logging REST API with Service Account authentication and filter expressions.

REST API を使用して、ロギングサービスをクエリできます。ログエンドポイントは、Unity サービスアカウントを使用して認証されます。

## ログのリクエスト##requesting-logs

ロギング API に対して GET リクエストを行います。

* [Observability API](https://services.docs.unity.com/observability/v1) ドキュメントには、ログをクエリする操作の詳細な説明が含まれています。

* 認証方法の詳細については、[認証](../../concepts/authentication) を参照してください。

cURL コマンドの例:

```curl
curl https://services.api.unity.com/observability/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/logs \
--header 'Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS_ENCODED>' \
--url-query 'from=<TIME_FROM>' \
--url-query 'to=<TIME_TO>' \
--url-query 'query=<FILTER_EXPRESSION>' \
--url-query 'limit=<LIMIT>' \
--url-query 'offset=<OFFSET>'
```

以下の任意のクエリパラメーターを使用できます。

* `from`: 返すレコードの開始タイムスタンプを指定するために使用される RFC3339 タイムスタンプ。例えば `2023-06-29T11:30:22.939Z` などです。
* `to`: 返すレコードの終了タイムスタンプを指定するために使用される RFC3339 タイムスタンプ。
* `query`: フィルターのブーリアン式。詳細については、[フィルターログ](../../concepts/filter-logs) を参照してください。
* `limit`: 返すレコードの最大数として機能する正の整数。100 以下である必要があります。
* `offset`: クエリの最初の結果からのログのオフセット番号として機能する正の整数。

### 相対時間範囲##relative-time-ranges

API では、時間範囲の操作を簡単にするために開始および終了パラメーターの相対時間式がサポートされます。

基本構文は、以下のコンポーネントから構成されます。

* ベース時間: RFC3999 タイムスタンプまたは `now ` キーワード。
* 演算子: + または -。
* 時間オフセット: 日、時間、分、秒の整数および単位。例えば、12d、5h、3m、17s などです。

例:

* from=now-30m
* from=2023-08-29T11:30:00.000Z+30s
* from=now-2d\&to=now-6h

### API 呼び出しの例##example-api-call

以下の例は、cURL を使用して Logging API からログをクエリする方法を示します。

認証方法の詳細については、[認証](../../concepts/authentication) を参照してください。

```curl
curl https://services.api.unity.com/observability/v1/projects/<PROJECT_ID>/environments/<ENVIRONMENT_ID>/logs \
--header 'Authorization: Basic <SERVICE_ACCOUNT_CREDENTIALS_ENCODED>' \
--url-query 'from=2023-09-01T00:00:00.000Z' \
--url-query 'to=2023-09-01T13:50:00.000Z' \
--url-query 'query=body~=”regular” AND logAttributes.example.myKey=”foo”' \
--url-query 'limit=10' \
--url-query 'offset=0'
```

レスポンスは以下のようになります:

```json
{
   "limit" : 10,
   "offset" : 0,
   "total" : 600,
   "results" : [
      {
         "severityNumber" : 9,
         "severityText" : "Information",
         "timestamp" : "2023-09-01T10:45:00.445Z",
         "body" : "this is just a regular log message",
         "logAttributes" : {
            "example.myKey" : "foo",
            "log.record.uid" : "a566701a-a9e5-42f7-bd8e-013fa9ef1afa",
            "unity.environmentId" : "c288f9e5-423b-4150-a982-5a1a40b1219a",
            "unity.projectId" : "2af24fd0-f224-499e-8768-07b54c693aee"
         },
         "resourceAttributes" : {
            "service.name" : "cloud-code"
         }
      }
   ]
}
```

レスポンスには以下のフィールドが含まれます。

* `limit`: 返されるレコードの最大数。
* `offset`: クエリの最初の結果からのログのオフセット番号。
* `total`: クエリと一致するレコードの総数。
* `results`: ログエントリーの配列。

[ログスキーマ](../../concepts/schema) への `results` 配列オブジェクトマップ。
