lograge 0.5.1 → 0.6.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: 57b34d36877b6275a24039405e6bfa710feaab24
4
- data.tar.gz: daa60dab98e3b64b97b8888bfd2f5c7d0fa8553f
3
+ metadata.gz: 6b484346cdeb170f3d4a180e7d9b4c3d15285fbe
4
+ data.tar.gz: 799da82f5ca643edd61a67b6733edd8dddd46cbf
5
5
  SHA512:
6
- metadata.gz: e1d73dc707c54f7976358ee9746c440d0bdc16f9fa399ce6763d168ddb34596e88c5625284892d673cb40933fb6e59ac6990d47dcab6b3ee11010ccf466b037d
7
- data.tar.gz: cb59d1f691a3af0abc751425c8de1ad29d363072b88abbaef8678072a7f56afa41b622eaa4ef2df53c89e3644574455bdc760073da30ef1358090a82adc52f99
6
+ metadata.gz: 6718376476946cee57fe6761d334a105cf3f6d3aa3b74519c314ba4a54344a4bca6130dc216702a7745ab46f6d30fbd15119ab7c006b119df082ff2a927a76e9
7
+ data.tar.gz: fbbab8b00be5c385447ee2da45a157c8fcfbd1e2e4170ff56f95a16246d12a3f0a8496ff3e0920a82374e15c62aa7f3c1eb60b4b7f431a544507415d4842de18
data/lib/lograge.rb CHANGED
@@ -9,9 +9,9 @@ require 'lograge/formatters/logstash'
9
9
  require 'lograge/formatters/ltsv'
10
10
  require 'lograge/formatters/raw'
11
11
  require 'lograge/log_subscriber'
12
+ require 'lograge/ordered_options'
12
13
  require 'active_support/core_ext/module/attribute_accessors'
13
14
  require 'active_support/core_ext/string/inflections'
14
- require 'active_support/ordered_options'
15
15
 
16
16
  # rubocop:disable ModuleLength
17
17
  module Lograge
@@ -123,6 +123,7 @@ module Lograge
123
123
 
124
124
  attach_to_action_controller
125
125
  set_lograge_log_options
126
+ setup_custom_payload
126
127
  support_deprecated_config # TODO: Remove with version 1.0
127
128
  set_formatter
128
129
  set_ignores
@@ -141,6 +142,17 @@ module Lograge
141
142
  Lograge::RequestLogSubscriber.attach_to :action_controller
142
143
  end
143
144
 
145
+ def setup_custom_payload
146
+ return unless lograge_config.custom_payload_method.respond_to?(:call)
147
+ append_payload_method = ActionController::Base.instance_method(:append_info_to_payload)
148
+ custom_payload_method = lograge_config.custom_payload_method
149
+
150
+ ActionController::Base.send(:define_method, :append_info_to_payload) do |payload|
151
+ append_payload_method.bind(self).call(payload)
152
+ payload[:custom_payload] = custom_payload_method.call(self)
153
+ end
154
+ end
155
+
144
156
  def set_lograge_log_options
145
157
  Lograge.logger = lograge_config.logger
146
158
  Lograge.custom_options = lograge_config.custom_options
@@ -2,6 +2,7 @@ require 'json'
2
2
  require 'action_pack'
3
3
  require 'active_support/core_ext/class/attribute'
4
4
  require 'active_support/log_subscriber'
5
+ require 'request_store'
5
6
 
6
7
  module Lograge
7
8
  class RequestLogSubscriber < ActiveSupport::LogSubscriber
@@ -16,12 +17,12 @@ module Lograge
16
17
  end
17
18
 
18
19
  def redirect_to(event)
19
- Thread.current[:lograge_location] = event.payload[:location]
20
+ RequestStore.store[:lograge_location] = event.payload[:location]
20
21
  end
21
22
 
22
23
  def unpermitted_parameters(event)
23
- Thread.current[:lograge_unpermitted_params] ||= []
24
- Thread.current[:lograge_unpermitted_params].concat(event.payload[:keys])
24
+ RequestStore.store[:lograge_unpermitted_params] ||= []
25
+ RequestStore.store[:lograge_unpermitted_params].concat(event.payload[:keys])
25
26
  end
26
27
 
27
28
  def logger
@@ -83,7 +84,8 @@ module Lograge
83
84
  end
84
85
 
85
86
  def custom_options(event)
86
- Lograge.custom_options(event) || {}
87
+ options = Lograge.custom_options(event) || {}
88
+ options.merge event.payload[:custom_payload] || {}
87
89
  end
88
90
 
89
91
  def before_format(data, payload)
@@ -98,18 +100,18 @@ module Lograge
98
100
  end
99
101
 
100
102
  def extract_location
101
- location = Thread.current[:lograge_location]
103
+ location = RequestStore.store[:lograge_location]
102
104
  return {} unless location
103
105
 
104
- Thread.current[:lograge_location] = nil
106
+ RequestStore.store[:lograge_location] = nil
105
107
  { location: location }
106
108
  end
107
109
 
108
110
  def extract_unpermitted_params
109
- unpermitted_params = Thread.current[:lograge_unpermitted_params]
111
+ unpermitted_params = RequestStore.store[:lograge_unpermitted_params]
110
112
  return {} unless unpermitted_params
111
113
 
112
- Thread.current[:lograge_unpermitted_params] = nil
114
+ RequestStore.store[:lograge_unpermitted_params] = nil
113
115
  { unpermitted_params: unpermitted_params }
114
116
  end
115
117
  end
@@ -0,0 +1,9 @@
1
+ require 'active_support/ordered_options'
2
+
3
+ module Lograge
4
+ class OrderedOptions < ActiveSupport::OrderedOptions
5
+ def custom_payload(&block)
6
+ self.custom_payload_method = block
7
+ end
8
+ end
9
+ end
@@ -4,7 +4,7 @@ require 'action_controller/log_subscriber'
4
4
 
5
5
  module Lograge
6
6
  class Railtie < Rails::Railtie
7
- config.lograge = ActiveSupport::OrderedOptions.new
7
+ config.lograge = Lograge::OrderedOptions.new
8
8
  config.lograge.enabled = false
9
9
 
10
10
  config.after_initialize do |app|
@@ -1,3 +1,3 @@
1
1
  module Lograge
2
- VERSION = '0.5.1'.freeze
2
+ VERSION = '0.6.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lograge
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mathias Meyer
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-05-13 00:00:00.000000000 Z
12
+ date: 2017-08-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -99,6 +99,20 @@ dependencies:
99
99
  - - <
100
100
  - !ruby/object:Gem::Version
101
101
  version: '5.2'
102
+ - !ruby/object:Gem::Dependency
103
+ name: request_store
104
+ requirement: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ~>
107
+ - !ruby/object:Gem::Version
108
+ version: '1.0'
109
+ type: :runtime
110
+ prerelease: false
111
+ version_requirements: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ~>
114
+ - !ruby/object:Gem::Version
115
+ version: '1.0'
102
116
  description: Tame Rails' multi-line logging into a single line per request
103
117
  email:
104
118
  - meyer@paperplanes.de
@@ -118,6 +132,7 @@ files:
118
132
  - lib/lograge/formatters/ltsv.rb
119
133
  - lib/lograge/formatters/raw.rb
120
134
  - lib/lograge/log_subscriber.rb
135
+ - lib/lograge/ordered_options.rb
121
136
  - lib/lograge/rails_ext/rack/logger.rb
122
137
  - lib/lograge/railtie.rb
123
138
  - lib/lograge/version.rb