Class AWS::Core::LogFormatter
In: lib/aws/core/log_formatter.rb
Parent: Object

Log Formatters

Log formatters receive a {AWS::Core::Response} object and return a log message. When you construct a {LogFormatter}, you provide a pattern string with substitutions.

  pattern = '[REQUEST :http_status_code] :service :operation :duration'
  formatter = AWS::Core::LogFormatter.new(pattern)
  formatter.format(response)
  #=> '[AWS 200] EC2 get_bucket 0.0352'

AWS Configuration

AWS.config provides a {LogFormatter.default} log formatter. You can repace this formatter by building your own and then passing it to {AWS.config}.

  pattern = '[REQUEST :http_status_code] :service :operation :duration'
  AWS.config(:log_formatter => AWS::Core::LogFormatter.new(pattern)

Canned Formatters

Instead of providing your own pattern, you can choose a canned log formatter.

  AWS.config(:log_formatter => AWS::Core::LogFormatter.colored)

Here is the list of canned formatters.

Pattern Substitutions

You can put any of these placeholders into you pattern.

+:service+
The AWS service name (e.g. ‘S3’, ‘EC2’, ‘SimpleDB’, etc)
+:region+
The AWS region name (e.g. ‘us-east-1’, ‘us-west-1’, etc)
+:operation+
The name of the client request method. This maps to the name of the serivce API operation (e.g. :describe_instances).
+:options+
The hash of options passed to the client request method. Long strings are truncated/summarized if they excede the log formatters {max_string_size}. Other objects are inspected.
+:retry_count+
The number of times a client request was retried. Throttlings and service errors trigger the automatic retry logic. This value indicates how many extra attempts were made before getting a successful response or giving up.
+:duration+
The time it took to generate a response, expressed in decimal seconds. This time includes everything from calling the client request method, until that method returns a value (event retries and retry delays).
+:error_class+
The class name of the error returned by the service. If no error was returned, this will be replcaed by an empty string.
+:error_message+
The message of the error returned. If no error was returned by the service, this will be an empty string.
+:http_request_method+
The HTTP request verb (e.g. ‘POST’, ‘PUT’, ‘GET’, etc).
+:http_request_protocol+
This is replaced by ‘http’ or ‘https’.
+:http_request_host+
The host name of the http request endpoint (e.g. ‘s3.amazon.com’).
+:http_request_port+
The port number (e.g. ‘443’ or ‘80’).
+:http_request_uri+
The http request uri folling the host (e.g. ’/bucket_name/objects/key?versions’).
+:http_request_body+
The http request payload.
+:http_request_headers+
The http request headers, inspected.
+:http_request_proxy_uri+
The proxy uri used, or an empty string.
+:http_response_status+
The http response status code (e.g. ‘200’, ‘404’, ‘500’, etc).
+:http_response_headers+
The http response headers, inspected.
+:http_response_body+
The http response body contents.

Methods

Attributes

max_string_size  [R]  @return [Integer]
pattern  [R]  @return [String]

Public Class methods

@param [String] pattern The log format pattern should be a string

  and may contain any of the following placeholders:

  * +:service+
  * +:region+
  * +:operation+
  * +:options+
  * +:retry_count
  * +:duration+
  * +:error_class+
  * +:error_message+
  * +:http_request_method+
  * +:http_request_protocol+
  * +:http_request_host+
  * +:http_request_port+
  * +:http_request_uri+
  * +:http_request_body+
  * +:http_request_headers+
  * +:http_request_proxy_uri+
  * +:http_response_status+
  * +:http_response_headers+
  * +:http_response_body+

@param [Hash] options

@option options [Integer] :max_string_size (1000)

Protected Class methods

The default log format with ANSI colors.

@example A sample of the colored format (sans the ansi colors).

  [AWS SimpleEmailService 200 0.580066 0 retries] list_verified_email_addresses()

@return [LogFormatter]

A debug format that dumps most of the http request and response data.

@example A truncated sample of the debug format.

  +-------------------------------------------------------------------------------
  | 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 ...

@return [LogFormatter]

The default log format.

@example A sample of the default format.

  [AWS SimpleEmailService 200 0.580066 0 retries] list_verified_email_addresses()

@return [LogFormatter]

The short log format. Similar to default, but it does not inspect the request params or report on retries.

@example A sample of the short format

  [AWS SimpleEmailService 200 0.494532] list_verified_email_addresses

@return [LogFormatter]

Public Instance methods

@param [Response] response @return [String]

Protected Instance methods

@param [Array] array @return [String]

Given the path to a file on disk, this method returns a summarized inspecton string that includes the file size. @param [String] path @return [String]

@param [Hash] hash @return [String]

@param [String] str @return [String]

@param [Object] value @return [String]

[Validate]