httplog 0.3.0 → 0.3.1
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.
- checksums.yaml +4 -4
- data/README.md +9 -4
- data/lib/httplog/adapters/http.rb +8 -7
- data/lib/httplog/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 34ea5d5a3d79f010bc367c72fb3296c489907adf
|
4
|
+
data.tar.gz: e5972f20db489dd25c0d4949a9f1ea10921112f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ae5751a11e8628998d96f3ea5327f1611ce80ec740de63006995cdcc9c79ded044bc8db717f8d51679a6dfbdfaf3c96fe9c335d55fa35ea472735a9c27928abb
|
7
|
+
data.tar.gz: 0b81643d6f33074cbb5b8e4041310f77c7e349e037d8167e1c3ae77f0a935c33924ca9c163ec8bba18f7637c70ff66cc3f462de2c5011b8a13d96e7b502d786c
|
data/README.md
CHANGED
@@ -15,7 +15,7 @@ So far this gem works with the following ruby modules and libraries:
|
|
15
15
|
* [Patron](https://github.com/toland/patron)
|
16
16
|
* [HTTPClient](https://github.com/nahi/httpclient)
|
17
17
|
* [HTTParty](https://github.com/jnunemaker/httparty)
|
18
|
-
* [HTTP](https://github.com/httprb/http)
|
18
|
+
* [HTTP](https://github.com/httprb/http)
|
19
19
|
|
20
20
|
These libraries are at least partially supported, where they use one of the above as adapters:
|
21
21
|
|
@@ -34,7 +34,7 @@ use this in a production environment.
|
|
34
34
|
|
35
35
|
### Usage
|
36
36
|
|
37
|
-
require 'httplog'
|
37
|
+
require 'httplog' # require this *after* your HTTP gem of choice
|
38
38
|
|
39
39
|
By default, this will log all outgoing HTTP requests and their responses to $stdout on DEBUG level.
|
40
40
|
|
@@ -75,6 +75,10 @@ You can colorize the output to make it stand out in your logfile:
|
|
75
75
|
|
76
76
|
For more color options see [colorize documentation](https://github.com/fazibear/colorize/blob/master/README.md)
|
77
77
|
|
78
|
+
### Compact logging
|
79
|
+
|
80
|
+
If the log is too noisy for you, but you don't want to completely disable it either, set the `compact_log` option to `true`. This will log each request in a single line with method, request URI, response status and time, but no data or headers. No need to disable any other options individually.
|
81
|
+
|
78
82
|
### Example
|
79
83
|
|
80
84
|
With the default configuration, the log output might look like this:
|
@@ -93,10 +97,11 @@ With the default configuration, the log output might look like this:
|
|
93
97
|
</body>
|
94
98
|
</html>
|
95
99
|
|
100
|
+
With `compact_log` enabled, the same request might look like this:
|
96
101
|
|
97
|
-
|
102
|
+
[httplog] GET http://localhost:9292/index.html completed with status code 200 in 0.00057 seconds
|
98
103
|
|
99
|
-
|
104
|
+
### Known Issues
|
100
105
|
|
101
106
|
* Requests types other than GET and POST have not been explicitly tested.
|
102
107
|
They may or may not be logged, depending on the implementation details of the underlying library.
|
@@ -1,9 +1,13 @@
|
|
1
|
-
if defined?(::HTTP::Client)
|
1
|
+
if defined?(::HTTP::Client) && defined?(::HTTP::Connection)
|
2
2
|
module ::HTTP
|
3
3
|
class Client
|
4
|
-
alias_method(:orig_make_request, :make_request) unless method_defined?(:orig_make_request)
|
5
4
|
|
6
|
-
|
5
|
+
#
|
6
|
+
request_method = respond_to?('make_request') ? 'make_request' : 'perform'
|
7
|
+
orig_request_method = "orig_#{request_method}"
|
8
|
+
alias_method(orig_request_method, request_method) unless method_defined?(orig_request_method)
|
9
|
+
|
10
|
+
define_method request_method do |req, options|
|
7
11
|
|
8
12
|
log_enabled = HttpLog.url_approved?(req.uri)
|
9
13
|
|
@@ -14,7 +18,7 @@ if defined?(::HTTP::Client) and defined?(::HTTP::Connection)
|
|
14
18
|
end
|
15
19
|
|
16
20
|
bm = Benchmark.realtime do
|
17
|
-
@response =
|
21
|
+
@response = send(orig_request_method, req, options)
|
18
22
|
end
|
19
23
|
|
20
24
|
if log_enabled
|
@@ -28,16 +32,13 @@ if defined?(::HTTP::Client) and defined?(::HTTP::Connection)
|
|
28
32
|
|
29
33
|
@response
|
30
34
|
end
|
31
|
-
|
32
35
|
end
|
33
36
|
|
34
37
|
class Connection
|
35
38
|
alias_method(:orig_initialize, :initialize) unless method_defined?(:orig_initialize)
|
36
39
|
|
37
40
|
def initialize(req, options)
|
38
|
-
|
39
41
|
HttpLog.log_connection(req.uri.host, req.uri.port) if HttpLog.url_approved?(req.uri)
|
40
|
-
|
41
42
|
orig_initialize(req, options)
|
42
43
|
end
|
43
44
|
end
|
data/lib/httplog/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: httplog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thilo Rusche
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-04-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -170,14 +170,14 @@ dependencies:
|
|
170
170
|
requirements:
|
171
171
|
- - '='
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version: 0.
|
173
|
+
version: 1.0.4
|
174
174
|
type: :development
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
178
|
- - '='
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version: 0.
|
180
|
+
version: 1.0.4
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: simplecov
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|