Class: AccessWatch::Logger
- Inherits:
-
Object
- Object
- AccessWatch::Logger
- Defined in:
- lib/access_watch/logger.rb
Instance Attribute Summary collapse
-
#client ⇒ Object
readonly
Returns the value of attribute client.
Instance Method Summary collapse
- #after_http_request(name, start, finish, id, payload) ⇒ Object
-
#initialize(config) ⇒ Logger
constructor
A new instance of Logger.
Constructor Details
#initialize(config) ⇒ Logger
Returns a new instance of Logger.
5 6 7 8 9 |
# File 'lib/access_watch/logger.rb', line 5 def initialize(config) @client = AccessWatch::Client.new(config) @parameter_filter = ActionDispatch::Http::ParameterFilter.new(Rails.application.config.filter_parameters) ActiveSupport::Notifications.subscribe("process_action.action_controller", &method(:after_http_request)) end |
Instance Attribute Details
#client ⇒ Object (readonly)
Returns the value of attribute client.
3 4 5 |
# File 'lib/access_watch/logger.rb', line 3 def client @client end |
Instance Method Details
#after_http_request(name, start, finish, id, payload) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/access_watch/logger.rb', line 11 def after_http_request(name, start, finish, id, payload) request = payload[:headers].instance_variable_get(:@req) post_request( time: start, address: request.remote_ip, host: request.host, request: { # TODO: Check if is SERVER_PROTOCOL comes from client browser # "protocol": "HTTP/1.1", method: payload[:method], scheme: URI(request.original_url).scheme, host: request.host, port: request.port, url: payload[:path], headers: extract_headers(payload) }, response: {status: payload[:status]}, ) end |