resurfaceio-logger 1.7.14 → 1.8.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 43259eb0b70a63bd2d27ff40915e5046a0296784
4
- data.tar.gz: 011033a042cdc4642b50edfc29148d55ffca0926
3
+ metadata.gz: 336dc8fe112fbe418b7636554503c58d4697eefc
4
+ data.tar.gz: a60960ad10d9d6e05d6d5184d4f664afe656d769
5
5
  SHA512:
6
- metadata.gz: ec22698b4ca603ab73fc1d68d73ccb958a207679f147755a517bdc20f330c1266d719d3807c00696eba4823a858fe97de19c3aeb77808238720832ef7fe4e508
7
- data.tar.gz: 0ffd311454eca86d67b465316116c067b9aa811d2f02bd01b4ee8cdb142f4bd880a9566f98a64b7b7b3adc3fd35d5bfa13c599bcd21bf4196bc6735be56a8f58
6
+ metadata.gz: 9c41e4094105e62d2498274a40d0b0896594b0f359255c4079a5cb01974475c2b1104dcaff6faf1f344315904d72c117f6c9f5aac46dac4690973ae878111fd2
7
+ data.tar.gz: b4a8a43683d44f406b39f090100b43533872eab643666b017e79f58a84c60a9e3bb95b65924baa0c6525efdadb7213799e9d793b6eaec4607c12a865cb1e0e03
@@ -12,27 +12,29 @@ class HttpLogger < BaseLogger
12
12
  super(AGENT, options)
13
13
  end
14
14
 
15
- def format(request, request_body, response, response_body, now=nil)
15
+ def format(request, response, response_body=nil, request_body=nil, now=nil)
16
16
  message = []
17
17
  append_value message, 'request_method', request.request_method
18
18
  append_value message, 'request_url', request.url
19
19
  append_value message, 'response_code', response.status
20
20
  append_request_headers message, request
21
+ append_request_params message, request
21
22
  append_response_headers message, response
22
- append_value message, 'request_body', request_body.nil? ? request.body : request_body
23
- append_value message, 'response_body', response_body.nil? ? response.body : response_body
23
+ append_value message, 'request_body', request_body unless request_body == ''
24
+ final_response_body = response_body.nil? ? response.body : response_body
25
+ append_value message, 'response_body', final_response_body unless final_response_body == ''
24
26
  message << ['agent', @agent]
25
27
  message << ['version', @version]
26
28
  message << ['now', now.nil? ? (Time.now.to_f * 1000).floor.to_s : now]
27
29
  JSON.generate message
28
30
  end
29
31
 
30
- def log(request, request_body, response, response_body)
31
- !enabled? || submit(format(request, request_body, response, response_body))
32
+ def log(request, response, response_body=nil, request_body=nil)
33
+ !enabled? || submit(format(request, response, response_body, request_body))
32
34
  end
33
35
 
34
- def string_content_type?(s)
35
- !s.nil? && s =~ /^(text\/(html|plain|xml))|(application\/(json|soap|xml|x-www-form-urlencoded))/i
36
+ def self.string_content_type?(s)
37
+ !s.nil? && !(s =~ /^(text\/(html|plain|xml))|(application\/(json|soap|xml|x-www-form-urlencoded))/i).nil?
36
38
  end
37
39
 
38
40
  protected
@@ -50,7 +52,23 @@ class HttpLogger < BaseLogger
50
52
  message << ["request_header.#{name[5..-1].downcase.tr('_', '-')}", value]
51
53
  end
52
54
  end
53
- end
55
+ end unless headers.nil?
56
+ end
57
+ end
58
+
59
+ def append_request_params(message, request)
60
+ respond_to_env = request.respond_to?(:env)
61
+ if respond_to_env || request.respond_to?(:form_hash)
62
+ hash = respond_to_env ? request.env['rack.request.form_hash'] : request.form_hash
63
+ hash.each do |name, value|
64
+ append_value message, "request_param.#{name.downcase}", value
65
+ end unless hash.nil?
66
+ end
67
+ if respond_to_env || request.respond_to?(:query_hash)
68
+ hash = respond_to_env ? request.env['rack.request.query_hash'] : request.query_hash
69
+ hash.each do |name, value|
70
+ append_value message, "request_param.#{name.downcase}", value
71
+ end unless hash.nil?
54
72
  end
55
73
  end
56
74
 
@@ -63,7 +81,7 @@ class HttpLogger < BaseLogger
63
81
  found_content_type = true if name =~ /^content-type/
64
82
  message << ["response_header.#{name}", value]
65
83
  end
66
- end
84
+ end unless response.headers.nil?
67
85
  end
68
86
  unless found_content_type || response.content_type.nil?
69
87
  message << ['response_header.content-type', response.content_type]
@@ -79,11 +97,7 @@ class HttpLogger < BaseLogger
79
97
  when String
80
98
  message << [key, value]
81
99
  else
82
- if value.respond_to?(:read)
83
- message << [key, value.read]
84
- else
85
- message << [key, value.to_s]
86
- end
100
+ message << [key, value.to_s]
87
101
  end
88
102
  end
89
103
  end
@@ -13,11 +13,11 @@ class HttpLoggerForRack # http://rack.rubyforge.org/doc/SPEC.html
13
13
 
14
14
  def call(env)
15
15
  status, headers, body = @app.call(env)
16
- if @logger.enabled? && status < 300
16
+ if @logger.enabled? && (status < 300 || status == 302)
17
17
  response = Rack::Response.new(body, status, headers)
18
- if @logger.string_content_type?(response.content_type)
18
+ if HttpLogger::string_content_type?(response.content_type)
19
19
  request = Rack::Request.new(env)
20
- @logger.log(request, nil, response, nil)
20
+ @logger.log(request, response)
21
21
  end
22
22
  end
23
23
  [status, headers, body]
@@ -11,9 +11,11 @@ class HttpLoggerForRails
11
11
 
12
12
  def around(controller)
13
13
  yield
14
+ request = controller.request
14
15
  response = controller.response
15
- if response.status < 300 && @logger.string_content_type?(response.content_type)
16
- @logger.log(controller.request, nil, response, nil)
16
+ status = response.status
17
+ if (status < 300 || status == 302) && HttpLogger::string_content_type?(response.content_type)
18
+ @logger.log(request, response)
17
19
  end
18
20
  end
19
21
 
@@ -4,8 +4,9 @@
4
4
  class HttpRequestImpl
5
5
 
6
6
  def initialize
7
+ @form_hash = Hash.new
7
8
  @headers = Hash.new
8
- @raw_body = nil
9
+ @query_hash = Hash.new
9
10
  end
10
11
 
11
12
  def add_header(key, value)
@@ -19,10 +20,6 @@ class HttpRequestImpl
19
20
  end
20
21
  end
21
22
 
22
- def body
23
- @raw_body ? StringIO.new(@raw_body) : nil
24
- end
25
-
26
23
  def content_type
27
24
  @headers['CONTENT_TYPE']
28
25
  end
@@ -31,11 +28,18 @@ class HttpRequestImpl
31
28
  @headers['CONTENT_TYPE'] = content_type
32
29
  end
33
30
 
31
+ def form_hash
32
+ @form_hash
33
+ end
34
+
34
35
  def headers
35
36
  @headers
36
37
  end
37
38
 
38
- attr_accessor :raw_body
39
+ def query_hash
40
+ @query_hash
41
+ end
42
+
39
43
  attr_accessor :request_method
40
44
  attr_accessor :url
41
45
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: resurfaceio-logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.14
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - RobDickinson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-22 00:00:00.000000000 Z
11
+ date: 2017-11-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler