lib/timber/contexts/http.rb in timber-2.6.2 vs lib/timber/contexts/http.rb in timber-3.0.0

- old
+ new

@@ -1,51 +1,31 @@ require "timber/context" module Timber module Contexts - # The HTTP context adds data about the current HTTP request being processed to your logs. - # This allows you to tail and filter by this data. A very useful piece of data this - # captures is the request ID. This gives you the ability to trace requests and view logs - # for a specific request only. For example, say you've searched your logs and found the - # specific line you are looking for, but it lacks context. With Timber you can simply - # click the request ID and "zoom out" to view all logs for that request. This gives you - # complete picture of how the log line in questio was generated. - # - # @note This context should be installed automatically through the, - # {Intregrations::Rack::HTTPContext} Rack middleware. + # @private class HTTP < Context - HOST_MAX_BYTES = 256.freeze - METHOD_MAX_BYTES = 20.freeze - PATH_MAX_BYTES = 2048.freeze - REMOTE_ADDR_MAX_BYTES = 256.freeze - REQUEST_ID_MAX_BYTES = 256.freeze - - @keyspace = :http - attr_reader :host, :method, :path, :remote_addr, :request_id def initialize(attributes) - normalizer = Util::AttributeNormalizer.new(attributes) - @host = normalizer.fetch(:host, :string, :limit => HOST_MAX_BYTES) - @method = normalizer.fetch!(:method, :string, :upcase => true, :limit => METHOD_MAX_BYTES) - @path = normalizer.fetch(:path, :string, :limit => PATH_MAX_BYTES) - @remote_addr = normalizer.fetch(:remote_addr, :string, :limit => REMOTE_ADDR_MAX_BYTES) - @request_id = normalizer.fetch(:request_id, :string, :limit => REQUEST_ID_MAX_BYTES) + @host = attributes[:host] + @method = attributes[:method] + @path = attributes[:path] + @remote_addr = attributes[:remote_addr] + @request_id = attributes[:request_id] end # Builds a hash representation containing simple objects, suitable for serialization (JSON). def to_hash - @to_hash ||= Util::NonNilHashBuilder.build do |h| - h.add(:host, host) - h.add(:method, method) - h.add(:path, path) - h.add(:remote_addr, remote_addr) - h.add(:request_id, request_id) - end + @to_hash ||= { + http: Util::NonNilHashBuilder.build do |h| + h.add(:host, host) + h.add(:method, method) + h.add(:path, path) + h.add(:remote_addr, remote_addr) + h.add(:request_id, request_id) + end + } end - - def as_json(_options = {}) - to_hash - end end end -end \ No newline at end of file +end