3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS API のログフォーマットを変更する

Posted at

AWS API を使っているとこういうログが吐かれると思いますが、

[AWS SimpleEmailService 200 0.580066 0 retries] list_verified_email_addresses() ...

もっと詳しくリクエストやレスポンスの内容を見たいとか、ログが長過ぎるという事があると思います。そういうときは

AWS.config(log_formatter: "#{ログフォーマット}")

と設定するとログのフォーマットを変える事が出来ます。
sdk に用意されているフォーマットは 4 通りです。

1. AWS::Core::LogFormatter.default

初期設定のフォーマット

2. AWS::Core::LogFormatter.short

default よりも短いログになります。サービス名、HTTP ステータス、かかった時間、オペレーション、エラーがあればエラーのクラスが出力されます。default と違いエラーメッセージは出力されません。

[AWS SimpleEmailService 200 0.494532] list_verified_email_addresses
3. AWS::Core::LogFormatter.debug

詳細なログを出力します。レスポンスだけでなくリクエスト内容まで見れるので、かなり冗長になりますが、エラー調査の際に重宝します。

+-------------------------------------------------------------------------------
| AWS us-east-1 SimpleEmailService list_verified_email_addresses 0.429189 0 retries
+-------------------------------------------------------------------------------
|   REQUEST
+-------------------------------------------------------------------------------
|    METHOD: POST
|       URL: https://email.us-east-1.amazonaws.com::443:/
|   HEADERS: {"content-type"=>"application/x-www-form-urlencoded" ...
|      BODY: Action=ListVerifiedEmailAddresses&Timestamp= ...
+-------------------------------------------------------------------------------
|  RESPONSE
+-------------------------------------------------------------------------------
|    STATUS: 200
|   HEADERS: {"x-amzn-requestid"=>["..."], ...
|      BODY: <ListVerifiedEmailAddressesResponse ...
4. AWS::Core::LogFormatter.colored

ログに色がつきます。出力される内容は default と変わらないんですが、[AWS SimpleEmailService 200 0.580066 0 retries] の部分が太文字の青色になるんで、とっても探しやすい!

自分でフォーマットをカスタマイズする

用意されているフォーマットじゃ満足できない場合、自分でフォーマットを決める事も出来ます。
例えばリクエストの Body だけ見たいって人はこんな感じ

AWS.config(log_formatter: AWS::Core::LogFormatter.new("REQUEST BODY: :http_request_body"))

LogFormatter に自分の好きな形で文字列を渡してあげればいいです。リクエストのヘッダが見たいとか、レスポンスは HTTP ステータスだけで良いとか、好きに決められます。もちろん色も変えられます。debugcolored を参考にすれば簡単に作れるでしょう。

参照

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?