rack-traffic-logger 0.2.6 → 0.2.7

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: 95df94c0e6e4f16211e08262d0ed06ccc45fed89
4
- data.tar.gz: e8312544b46d51e6bea937b8062d3a4a8e3e762d
3
+ metadata.gz: 0e2d9d6dbf7e643b44c6a027b40d72ae965905b6
4
+ data.tar.gz: 0720be927009f204912e451fe1806efe77f75211
5
5
  SHA512:
6
- metadata.gz: 385da06efb3efe17184385ebac636c28359b5786787c930faa50228384b1c887bfcb1349e60298947264c4067ebf5b4ce7c31205be2d37fc7b2df868f7cccb6a
7
- data.tar.gz: 09ceb2fc87385411262dbc9cb922c9340b5b6a568dd67e438e909636ca22dbb1b639d4642061158cd0043602d17b9fa6dba00aee83b57bb0d46a750073fb5b64
6
+ metadata.gz: a6b621b06f98cecb5b0caa50a03d3c24050981a75d95bf3d19a40e248aafae45b27284b997ded3942404207d3f68dd556d68af832985e3a556387680edeb1378
7
+ data.tar.gz: 081fe2c8212c2db6c80ef2967f2013e1b183e91962cd33b84602566884b75cb88cbf8ee10516e3fd533326eeb4ce495d8f773d0d5fcf802ae6f9162b7bd184d2
@@ -1,5 +1,4 @@
1
1
  require 'json'
2
- require 'time'
3
2
 
4
3
  module Rack
5
4
  class TrafficLogger
@@ -1,5 +1,11 @@
1
+ require 'rack/utils'
2
+ require 'rack/body_proxy'
3
+ require 'zlib'
4
+ require 'securerandom'
5
+
1
6
  module Rack
2
7
  class TrafficLogger
8
+ # noinspection RubyStringKeysInHashInspection
3
9
  class Request
4
10
 
5
11
  def initialize(logger)
@@ -62,7 +68,7 @@ module Rack
62
68
  def get_real_body(body)
63
69
 
64
70
  # For bodies representing temporary files
65
- body = File.open(body.path, 'rb') { |f| f.read } if body.respond_to? :path
71
+ body = ::File.open(body.path, 'rb') { |f| f.read } if body.respond_to? :path
66
72
 
67
73
  # For bodies representing streams
68
74
  body = body.read.tap { body.rewind } if body.respond_to? :read
@@ -89,16 +95,23 @@ module Rack
89
95
  end
90
96
 
91
97
  def log(event)
92
- # noinspection RubyStringKeysInHashInspection
93
98
  hash = {
94
99
  'timestamp' => Time.now.strftime('%FT%T.%3N%:z'),
95
100
  'request_log_id' => @id,
96
101
  'event' => event
97
102
  }
98
- yield hash rescue hash.merge! error: $!
103
+ yield hash rescue hash.merge! 'logger_exception' => expand_exception($!)
99
104
  @logger.log hash
100
105
  end
101
106
 
107
+ def expand_exception(e)
108
+ {
109
+ 'class' => e.class.name,
110
+ 'message' => e.message,
111
+ 'backtrace' => e.backtrace
112
+ }
113
+ end
114
+
102
115
  end
103
116
  end
104
117
  end
@@ -1,3 +1,5 @@
1
+ require 'json'
2
+
1
3
  module Rack
2
4
  class TrafficLogger
3
5
  class StreamSimulator
@@ -11,7 +13,9 @@ module Rack
11
13
  case input['event']
12
14
  when 'request' then format_request input
13
15
  when 'response' then format_response input
14
- else nil
16
+ else ''
17
+ end.tap do |result|
18
+ result << format_exception(input['logger_exception']) if input.key? 'logger_exception'
15
19
  end
16
20
  end
17
21
 
@@ -57,6 +61,10 @@ module Rack
57
61
  result << format_body(input, headers && headers['Content-Type'])
58
62
  end
59
63
 
64
+ def format_exception(e)
65
+ "\n\n#{e['class']}: #{e['message']}\n #{e['backtrace'].join "\n "}"
66
+ end
67
+
60
68
  def render(template, data)
61
69
  template.gsub(/:(\w+)/) { data[$1.to_sym] }
62
70
  end
@@ -1,5 +1,5 @@
1
1
  module Rack
2
2
  class TrafficLogger
3
- VERSION = '0.2.6'
3
+ VERSION = '0.2.7'
4
4
  end
5
5
  end
@@ -8,9 +8,6 @@ require_relative 'traffic_logger/express_setup'
8
8
  require_relative 'traffic_logger/request'
9
9
  require_relative 'traffic_logger/faraday_adapter'
10
10
 
11
- require 'json'
12
- require 'securerandom'
13
-
14
11
  module Rack
15
12
  class TrafficLogger
16
13
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-traffic-logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Neil E. Pearson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-13 00:00:00.000000000 Z
11
+ date: 2014-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack