Class: Seahorse::Client::Logging::Formatter Private
- Inherits:
-
Object
- Object
- Seahorse::Client::Logging::Formatter
- Defined in:
- lib/seahorse/client/logging/formatter.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
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::Client::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 private
- #pattern ⇒ String readonly private
Class Method Summary collapse
-
.colored ⇒ Formatter
private
The default log format with ANSI colors.
-
.default ⇒ Formatter
private
The default log format.
-
.short ⇒ Formatter
private
The short log format.
Instance Method Summary collapse
- #eql?(other) ⇒ Boolean (also: #==) private
-
#format(response) ⇒ String
private
Given a Response, this will format a log message and return it as a string.
-
#initialize(pattern, options = {}) ⇒ Formatter
constructor
private
A new instance of Formatter.
Constructor Details
#initialize(pattern, options = {}) ⇒ Formatter
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.
Returns a new instance of Formatter.
84 85 86 87 |
# File 'lib/seahorse/client/logging/formatter.rb', line 84 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)
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.
111 112 113 114 115 116 117 |
# File 'lib/seahorse/client/logging/formatter.rb', line 111 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)
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.
93 94 95 |
# File 'lib/seahorse/client/logging/formatter.rb', line 93 def max_string_size @max_string_size end |
#pattern ⇒ String (readonly)
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.
90 91 92 |
# File 'lib/seahorse/client/logging/formatter.rb', line 90 def pattern @pattern end |
Class Method Details
.colored ⇒ Formatter
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.
The default log format with ANSI colors.
300 301 302 303 304 305 306 307 308 309 310 311 312 313 |
# File 'lib/seahorse/client/logging/formatter.rb', line 300 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
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.
The default log format.
261 262 263 264 265 266 267 268 269 270 271 |
# File 'lib/seahorse/client/logging/formatter.rb', line 261 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
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.
The short log format. Similar to default, but it does not inspect the request params or report on retries.
282 283 284 285 286 287 288 289 290 |
# File 'lib/seahorse/client/logging/formatter.rb', line 282 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.
104 105 106 |
# File 'lib/seahorse/client/logging/formatter.rb', line 104 def eql?(other) other.is_a?(self.class) and other.pattern == self.pattern end |
#format(response) ⇒ String
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.
Given a Response, this will format a log message and return it
as a string.
99 100 101 |
# File 'lib/seahorse/client/logging/formatter.rb', line 99 def format(response) pattern.gsub(/:(\w+)/) {|sym| send("_#{sym[1..-1]}", response) } end |