このガイドでは、以前のログビューアの基本クエリ インターフェースを使用して、ラベルまたはテキスト検索でログエントリをクエリする方法を説明します。以前のログビューアを使用した高度なログクエリ オプションについては、高度なログクエリをご覧ください。
ログエントリをエクスポートする方法については、以前のログビューアによるエクスポートをご覧ください。API を使用してログエントリを読み取る方法については、entries.list をご覧ください。SDK を使用してログエントリを読み取る方法については、ログエントリの読み取りをご覧ください。
Cloud Logging には、ログデータを分析するための 2 つのインターフェースがあります。
このページには、以前のログビューアを使用して基本的なクエリを作成する方法に関する情報が記載されています。ログ エクスプローラは、ログデータを分析するための新しいインターフェースです。ログ エクスプローラの詳細については、ログ エクスプローラの使用をご覧ください。
基本的なクエリのスタートガイド
以前のログビューアで基本クエリの使用を開始する手順は、次のとおりです。
Cloud Console の [ロギング] > [ログ エクスプローラ] ページに移動します。
[オプション] プルダウン メニューから [以前のログビューアに戻る] を選択します。
ページの上部にある既存の Google Cloud プロジェクトを選択します。
プルダウン メニューarrow_drop_downを使用して、ログを表示するリソースを選択します。
次のスクリーンショットは、基本的なクエリ インターフェースを示しています。App Engine アプリケーションからの 4 つのログエントリが表示されています。展開矢印 arrow_right がクリックされ、2 番目のエントリが展開されています。
スクリーンショットに赤い数字で示されている、基本的なクエリ インターフェースの主な構成要素は次のとおりです。一部の要素は高度なクエリ インターフェースにも表示されます。
- ウィンドウタブでは、[ログ](以前のログビューア)、[指標](ログベースの指標を参照)、[エクスポート](ログのエクスポートを参照)、[ログの取り込み](ログの除外を参照)を選択できます。
- 基本ログクエリ インターフェースの検索クエリボックスでは、ラベルまたはテキスト検索でログエントリをクエリできます。基本クエリ インターフェースが表示され、プルダウン メニュー arrow_drop_down を使用すると、高度なクエリ インターフェースに切り替えられます。自分のクエリへのリンクも表示できます。ログクエリは、ログエントリの特定のセットを選択できるようになっているため、ユーザー インターフェースでは「フィルタ」のラベルが付いています。
基本セレクタ メニューでは、表示するリソース、ログ、重大度レベルを選択できます。
- リソース: 現在のプロジェクトで使用できるリソース。
- ログ: プロジェクト内の現在のリソースで使用できるログの種類。
- ログの重大度: ログの重大度レベル。
期間セレクタのプルダウン メニューでは、特定の日時でもログをクエリできます。
ページの先頭にあるストリーミング セレクタでは、新しいログエントリを受信時に表示するかどうかを制御できます。
ログエントリ テーブルには、現在のクエリとカスタム フィールドに応じて利用可能なログエントリが表示されます。
各ログエントリの前にある展開矢印 arrow_right を使用すると、エントリの全内容を見ることができます。詳しくは、ログエントリの展開をご覧ください。
[表示設定] メニューには、その他の表示オプションがあります。
[ログをダウンロード] メニューでは、一連のログエントリをダウンロードできます。
各ログエントリに表示される [その他] more_vert を使用すると、ログエントリを固定する、リソース コンテキスト内でログエントリを表示する、ログエントリの URL をクリップボードにコピーするといった操作を行えます。
以前のログビューアでは、カーソル位置に基づいて関連するログエントリがハイライト表示され、[その他] more_vert の横に押しピン(📌)アイコンが表示されます。
基本的な検索
基本クエリ インターフェースで、検索クエリボックスにテキストを入力し、Enter キーを押します。任意のフィールド(ただし timestamp
を除く)に検索キーワードを含むすべてのログエントリを返します。大文字と小文字の区別はされません。以前のログビューアによって検索キーワードの前に追加される text:
という単語は、「すべてのフィールド」検索であることを示します。
以下に、一般的な検索例、実際の動作が予想とは異なる検索例をいくつか示します。
基本的な検索の一般的な例
Unicorn
(text:Unicorn
)任意のフィールドに
unicorn
を含むすべてのログエントリを検索します。大文字と小文字は区別されません。unicorn phoenix
(text:unicorn text:phoenix
)同じまたは異なるフィールドに
unicorn
またはphoenix
を含むすべてのログエントリを検索します。両方のキーワードを含むエントリを検索する場合は、高度なクエリ インターフェースを使用します。"unicorn phoenix"
(text:"unicorn phoenix"
)1 つのフィールドに
unicorn
およびphoenix
を含むすべてのログエントリを検索します。大文字と小文字は区別されず、スペース 1 つで区切られているもののみが該当します。基本ログ クエリ インターフェースでは同一フィールド内のどこかにある「unicorn
およびphoenix
」という文字列を検索できませんが、高度なクエリ インターフェースでは検索できます。-unicorn
(-text:unicorn
)任意のフィールドに
unicorn
を含むすべてのログエントリを検索し(大文字と小文字は区別されません)、表示されるエントリから除外します。基本ログ クエリ インターフェースでは、同じフィールドまたは異なるフィールドにある「-unicorn
および-phoenix
」という文字列を検索できませんが、高度なログ クエリ インターフェースでは検索できます。2345
(text:2345
)文字列
2345
を含むすべてのログエントリを検索します。ログエントリ内の数値は文字列として示されるのが一般的であるため、この文字列は、たとえば123456
にも一致します。
実際の動作が予想とは異なる検索例
uni*
(text:uni*
)- これは正規表現のワイルドカード検索ではありません。この場合、4 文字の文字列
"uni*"
を含むすべてのログエントリが検索されます。なお、基本クエリ インターフェースでは正規表現検索を行えず、*
や?
などの特殊なワイルドカード文字は適用できません。高度なクエリ インターフェースで正規表現を使用する場合は、正規表現を使用したエントリのクエリをご覧ください。 2017-02-05
(text:2017-02-05
)- これは、ログエントリのタイムスタンプと一致しません。この場合、
timestamp
を除くいずれかのフィールドに文字列2017-02-05
を含む、すべてのログエントリが検索されます。ログエントリのペイロードやその他のフィールドに日付を表す文字列を含む場合、それらの文字列を検索することは可能です。また、[Jump to date] メニューも使用できます。高度なログクエリ インターフェースでは、タイムスタンプの範囲を指定して検索できます。 200..299
(text:200..299
)- これは、
250
と一致しません。基本クエリ インターフェースの検索では、8 文字の文字列"200..299"
を含むログエントリが検索されます。このような範囲表記は、整数フィールドの検索でのみ可能です。このページの特定のフィールドを検索するをご覧ください。 unicorn NOT phoenix
(text:unicorn text:NOT text:phoenix
)unicorn OR phoenix
(text:unicorn text:OR text:phoenix
)- これらは、ブール演算子(AND、OR、NOT、AND NOT)が基本ログクエリのテキスト検索で使用できないことから、ブールテキスト検索ではありません。複数のテキストの検索キーワードを含めると、それらのキーワードは暗黙的に OR で結合されます。ブール演算子
NOT
の代わりに-
(マイナス)演算子を使用できます。詳しくは、このページの基本的な検索の一般的な例をご覧ください。
特定のフィールドを検索する
特定のフィールドだけを検索するには、検索キーワードの前にフィールド名とコロンを指定します。すべてのフィールドの検索では、フィールド名は text:
に置き換えられます。検索クエリボックスに文字を入力すると、一致するフィールドのリストが表示されます。
以下の例では、status:
は整数の HTTP ステータス コード、path:
はリクエスト内の HTTP パスです。
path:query
- 大文字と小文字は区別されず、HTTP パスに
query
を含むログエントリを検索します。例:/query
や/App/Query/17
。 path:*
path
フィールドを持つログエントリを検索します。この検索では、アスタリスク(*
)を特殊文字として特別に使用します。これ以外の検索では、一般に特殊文字として扱われません。status:200
- ステータスが 200 のログエントリのみ表示します。この検索でステータスが
2000
のものは一致しません。status
は整数フィールドとして認識され、数値の比較が行われるためです。 status:abc
status
は整数として認識されるため、これは無効です。status:400..499
- HTTP ステータスが 400~499 のログエントリを検索します。範囲は、整数として認識されるフィールドに対してのみ使用できます。それ以外のフィールドに対して範囲を指定した場合、範囲ではなく
.
という文字を含む 1 つの文字列とみなされます。 path:query unicorn
path
フィールドにquery
を含み、かついずれかのフィールドにunicorn
を含むログエントリを検索します。unicorn
の前にフィールド名の指定がないため、text:unicorn
と入力した場合と同じ検索が行われます。複数の異なるフィールドまたはフィールドとtext:
に対して複数の検索キーワードを指定すると、キーワードは暗黙的に AND で結合されます。path:query path:status
path
フィールドにquery
またはstatus
を含むログエントリを検索します。同一のフィールドに対して複数の検索キーワードを指定すると、キーワードは暗黙的に OR で結合されます。path:query status:200 path:status status:500..502
- path に
query
またはstatus
を含み、かつstatus
の値が 200、500、501、または 502 であるログエントリを検索します。つまり、OR の結合のほうが AND の結合よりも厳しく、検索キーワードの順序は重要でないということです。
トラブルシューティング
基本クエリ インターフェースで検索できない理由がわからない場合は、一時的に高度なクエリ インターフェースに切り替えます。
検索クエリボックスにあるプルダウン メニュー arrow_drop_down を使用して [高度なフィルタに変換] を選択します。
検索クエリボックスの内容が意図に合っているかどうかを確認します。
ブラウザの戻るボタンを使用して、基本クエリ インターフェースに戻ります。このオプションを選択すると、基本クエリ インターフェースの以前の選択内容に戻ります。
ステップ 2 でクエリが意図と異なっていた場合は、検索クエリボックス、基本セレクタ メニュー、期間セレクタ メニューで変更または消去できます。
必要なログエントリがすべて表示されない理由は他にもいくつかあります。
Logging の保持期間を超過したログエントリは表示されません。有効なログの保持期間については、ログの保持期間をご覧ください。
負荷が高くなっている場合、Logging へのログの送信やログの受信と表示に遅延が生じることがあります。
未来のタイムスタンプを持つログエントリは、現在の時刻がタイムスタンプに「追いつく」まで以前のログビューアに表示されません。これは異常な状況です。おそらく、ログを送信しているアプリケーションの時間のずれが原因です。