http_logger 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. data/VERSION +1 -1
  2. data/http_logger.gemspec +2 -2
  3. data/lib/http_logger.rb +48 -20
  4. metadata +4 -4
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.0
1
+ 0.3.2
data/http_logger.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{http_logger}
8
- s.version = "0.3.0"
8
+ s.version = "0.3.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Bogdan Gusiev"]
12
- s.date = %q{2013-02-12}
12
+ s.date = %q{2013-02-13}
13
13
  s.description = %q{This gem keep an eye on every Net::HTTP library usage and dump all request and response data to the log file}
14
14
  s.email = %q{agresso@gmail.com}
15
15
  s.extra_rdoc_files = [
data/lib/http_logger.rb CHANGED
@@ -45,34 +45,62 @@ class HttpLogger
45
45
  end
46
46
 
47
47
  def perform(http, request, request_body)
48
- time = Time.now
48
+ start_time = Time.now
49
49
  response = yield
50
50
  ensure
51
- if self.require_logging?(http, request)
52
- url = "http#{"s" if http.use_ssl?}://#{http.address}:#{http.port}#{request.path}"
53
- ofset = Time.now - time
54
- log("HTTP #{request.method} (%0.2fms)" % (ofset * 1000), URI.decode(url))
55
- request.each_capitalized { |k,v| log("HTTP request header", "#{k}: #{v}") } if self.class.log_headers
56
- if request.is_a?(::Net::HTTP::Post) || request.is_a?(::Net::HTTP::Put)
57
- log("#{request.class.to_s.upcase} params", request.body)
58
- end
51
+ if require_logging?(http, request)
52
+ log_request_url(http, request, start_time)
53
+ log_post_put_params(request)
54
+ log_request_headers(request)
59
55
  if defined?(response) && response
60
- log("Response status", "#{response.class} (#{response.code})")
61
- response.each_capitalized { |k,v| log("HTTP response header", "#{k}: #{v}") } if self.class.log_headers
62
- body = response.body
63
- unless body.is_a?(Net::ReadAdapter)
64
- if collapse_body_limit && collapse_body_limit > 0 && body.size >= collapse_body_limit
65
- body = body[0..1000] + "\n\n<some data truncated>\n\n" + body[(body.size - 1000)..body.size]
66
- end
67
- log("Response body", body)
68
- else
69
- log("response body", "<impossible to log>")
70
- end
56
+ log_response_code(response)
57
+ log_response_headers(response)
58
+ log_response_body(response.body)
71
59
  end
72
60
  end
73
61
  end
74
62
 
75
63
  protected
64
+
65
+ def log_request_url(http, request, start_time)
66
+ url = "http#{"s" if http.use_ssl?}://#{http.address}:#{http.port}#{request.path}"
67
+ ofset = Time.now - start_time
68
+ log("HTTP #{request.method} (%0.2fms)" % (ofset * 1000), URI.decode(url))
69
+ end
70
+
71
+ def log_request_headers(request)
72
+ if self.class.log_headers
73
+ request.each_capitalized { |k,v| log("HTTP request header", "#{k}: #{v}") }
74
+ end
75
+ end
76
+
77
+ def log_post_put_params(request)
78
+ if request.is_a?(::Net::HTTP::Post) || request.is_a?(::Net::HTTP::Put)
79
+ log("#{request.class.to_s.upcase} params", request.body)
80
+ end
81
+ end
82
+
83
+ def log_response_code(response)
84
+ log("Response status", "#{response.class} (#{response.code})")
85
+ end
86
+
87
+ def log_response_headers(response)
88
+ if self.class.log_headers
89
+ response.each_capitalized { |k,v| log("HTTP response header", "#{k}: #{v}") }
90
+ end
91
+ end
92
+
93
+ def log_response_body(body)
94
+ if body && !body.is_a?(Net::ReadAdapter)
95
+ if collapse_body_limit && collapse_body_limit > 0 && body.size >= collapse_body_limit
96
+ body = body[0..1000] + "\n\n<some data truncated>\n\n" + body[(body.size - 1000)..body.size]
97
+ end
98
+ log("Response body", body)
99
+ else
100
+ log("Response body", "<impossible to log>")
101
+ end
102
+ end
103
+
76
104
  def require_logging?(http, request)
77
105
  fakeweb = if defined?(::FakeWeb)
78
106
  uri = ::FakeWeb::Utility.request_uri_as_string(http, request)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: http_logger
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 0
10
- version: 0.3.0
9
+ - 2
10
+ version: 0.3.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Bogdan Gusiev
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2013-02-12 00:00:00 +02:00
18
+ date: 2013-02-13 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency