演習 - ログ

完了

この演習では、サンプル アプリケーションのログを表示する演習を見ていきます。

ストリーミング ログの演習

ログ末尾

既存の Azure Cloud Shell ウィンドウで、次のコマンドを使用して、アプリケーション インスタンス ログを表示します。

az spring app logs --name customers-service

重要

元の Azure Cloud Shell ウィンドウを閉じた場合、またはローカル開発環境でコマンドを実行したい場合は、以下のようにリソース グループと Azure Spring Apps サービス名を指定する必要があります。

az spring app logs --name customers-service --resource-group <resource group name> --service <service >instance name>

このコマンドによって次のようなログが返されます。

...
2021-04-23 09:13:59.516  INFO [customers-service,,,] 1 --- [           main] o.s.s.p.c.CustomersServiceApplication    : Started CustomersServiceApplication in 48.032 seconds (JVM running for 79.933)
2021-04-23 09:14:05.385  INFO [customers-service,,,] 1 --- [nio-1025-exec-2] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2021-04-23 09:14:05.385  INFO [customers-service,,,] 1 --- [nio-1025-exec-2] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2021-04-23 09:14:05.410  INFO [customers-service,,,] 1 --- [nio-1025-exec-2] o.s.web.servlet.DispatcherServlet        : Completed initialization in 25 ms
...

新しいログを継続的にストリーミングする

既定では、az spring app logs はアプリ コンソールにストリーミングされた既存のログだけを出力した後、終了します。 新しいログをストリーム配信する場合は、-f (--follow) を追加します。

az spring app logs --name customers-service -f

エラーと警告の演習

次に、素早くデバッグして根本原因を見つけることができることの価値を示すために、エラーを作成します。

  1. customers-service を開き、ログを確認します。

    az spring app logs --name customers-service -f
    
  2. 次に、Web ブラウザーで新しいウィンドウを開き、次のコマンドを使用して警告をトリガーします ("<spring-apps-name>" は使用中の Spring Apps インスタンスの名前に置き換えてください)。

    https://<spring-apps-name>-api-gateway.azuremicroservices.io/api/customer/owners/George
    
  3. 上記の URL へのアクセスによって警告がトリガーされます。これは、変数 "George" を数値にキャストして顧客を検索することができないためです。 次のような警告が表示されるはずです。

    ログ警告が表示されている Azure Cloud Shell のスクリーンショット。

  4. この警告を解決するには、Web ブラウザーで次の URL に移動し、顧客 ID を使用して顧客を検索します ("<spring-apps-name>" を使用中の Spring Apps インスタンスの名前に置き換えるのを忘れないでください)。

    https://<spring-apps-name>-api-gateway.azuremicroservices.io/api/customer/owners/1