lograge 0.5.1 → 0.6.0

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 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