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-west-1', 'us-west-2', 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

==(other)

Alias for eql?

@api private

@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]