Class: Seahorse::Client::Logging::Formatter
- Inherits:
-
Object
- Object
- Seahorse::Client::Logging::Formatter
- Defined in:
- lib/seahorse/client/logging/formatter.rb
Overview
A log formatter receives a Response object and return a log message as a string. When you construct a Formatter, you provide a pattern string with substitutions.
pattern = ':operation :http_response_status_code :time'
formatter = Seahorse::Logging::Formatter.new(pattern)
formatter.format(response)
#=> 'get_bucket 200 0.0352'
# Canned Formatters
Instead of providing your own pattern, you can choose a canned log formatter.
# Pattern Substitutions
You can put any of these placeholders into you pattern.
* `:client_class` - The name of the client class.
* `:operation` - The name of the client request method.
* `:request_params` - The user provided request parameters. Long
strings are truncated/summarized if they exceed the
{#max_string_size}. Other objects are inspected.
* `:time` - The total time in seconds spent on the
request. This includes client side time spent building
the request and parsing the response.
* `:retries` - The number of times a client request was retried.
* `:http_request_method` - The http request verb, e.g., `POST`,
`PUT`, `GET`, etc.
* `:http_request_endpoint` - The request endpoint. This includes
the scheme, host and port, but not the path.
* `:http_request_scheme` - 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_headers` - The http request headers, inspected.
* `:http_request_body` - The http request payload.
* `:http_response_status_code` - 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.
* `:error_class`
* `:error_message`
Instance Attribute Summary collapse
- #max_string_size ⇒ Integer readonly
- #pattern ⇒ String readonly
Class Method Summary collapse
-
.colored ⇒ Formatter
The default log format with ANSI colors.
-
.default ⇒ Formatter
The default log format.
-
.short ⇒ Formatter
The short log format.
Instance Method Summary collapse
- #eql?(other) ⇒ Boolean (also: #==) private
-
#format(response) ⇒ String
Given a Response, this will format a log message and return it as a string.
-
#initialize(pattern, options = {}) ⇒ Formatter
constructor
A new instance of Formatter.
Constructor Details
#initialize(pattern, options = {}) ⇒ Formatter
Returns a new instance of Formatter.
80 81 82 83 |
# File 'lib/seahorse/client/logging/formatter.rb', line 80 def initialize(pattern, = {}) @pattern = pattern @max_string_size = [:max_string_size] || 1000 end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args) ⇒ Object (private)
107 108 109 110 111 112 113 |
# File 'lib/seahorse/client/logging/formatter.rb', line 107 def method_missing(method_name, *args) if method_name.to_s.chars.first == '_' ":#{method_name.to_s[1..-1]}" else super end end |
Instance Attribute Details
#max_string_size ⇒ Integer (readonly)
89 90 91 |
# File 'lib/seahorse/client/logging/formatter.rb', line 89 def max_string_size @max_string_size end |
#pattern ⇒ String (readonly)
86 87 88 |
# File 'lib/seahorse/client/logging/formatter.rb', line 86 def pattern @pattern end |
Class Method Details
.colored ⇒ Formatter
The default log format with ANSI colors.
292 293 294 295 296 297 298 299 300 301 302 303 304 305 |
# File 'lib/seahorse/client/logging/formatter.rb', line 292 def colored bold = "\x1b[1m" color = "\x1b[34m" reset = "\x1b[0m" pattern = [] pattern << "#{bold}#{color}[:client_class" pattern << ":http_response_status_code" pattern << ":time" pattern << ":retries retries]#{reset}#{bold}" pattern << ":operation(:request_params)" pattern << ":error_class" pattern << ":error_message#{reset}" Formatter.new(pattern.join(' ') + "\n") end |
.default ⇒ Formatter
The default log format.
253 254 255 256 257 258 259 260 261 262 263 |
# File 'lib/seahorse/client/logging/formatter.rb', line 253 def default pattern = [] pattern << "[:client_class" pattern << ":http_response_status_code" pattern << ":time" pattern << ":retries retries]" pattern << ":operation(:request_params)" pattern << ":error_class" pattern << ":error_message" Formatter.new(pattern.join(' ') + "\n") end |
.short ⇒ Formatter
The short log format. Similar to default, but it does not inspect the request params or report on retries.
274 275 276 277 278 279 280 281 282 |
# File 'lib/seahorse/client/logging/formatter.rb', line 274 def short pattern = [] pattern << "[:client_class" pattern << ":http_response_status_code" pattern << ":time]" pattern << ":operation" pattern << ":error_class" Formatter.new(pattern.join(' ') + "\n") end |
Instance Method Details
#eql?(other) ⇒ Boolean Also known as: ==
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
100 101 102 |
# File 'lib/seahorse/client/logging/formatter.rb', line 100 def eql?(other) other.is_a?(self.class) and other.pattern == self.pattern end |
#format(response) ⇒ String
Given a Response, this will format a log message and return it
as a string.
95 96 97 |
# File 'lib/seahorse/client/logging/formatter.rb', line 95 def format(response) pattern.gsub(/:(\w+)/) {|sym| send("_#{sym[1..-1]}", response) } end |