rails_semantic_logger 4.0.1 → 4.1.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: 3e9c2ffe09cf14071b342b13be6aad0d0aa8935b
4
- data.tar.gz: 8852db53880093561eeedd13700f7c538614e874
3
+ metadata.gz: 10d16b755cfd965d39a2d7b4d757197633110f70
4
+ data.tar.gz: 2a1214833f2f880d9e826a237945235aa9786a64
5
5
  SHA512:
6
- metadata.gz: 28d83ef103945904e2c0817fbf0b9a26baa36cfd9bb644de64b0f172155c5767b49f8bd57b30c6da1b10d80555e352a113333f7884e9779227505d7e9b4fa67f
7
- data.tar.gz: fc0d516bdeaf189cd363e7c7e578c40a10a538a461d53ec12e094a958314def91a9eba6b053a9890378f274e43ffb02180bf703327368400dd395dd828016b0e
6
+ metadata.gz: b089694f067de7d2622a8961742888192a1f5f047605df8c7dbc420aff026257063ae7222e2a50ca42270a4d33540e70d40836092879a6e20a4b36806499721a
7
+ data.tar.gz: c0a42f4aee7497fcdbefb34b3117bada04d36efdfc6d6d04ae02c6090847973787b1719b6c77b2f229dea2ba92ca826672cc1b30d929bc164896a8be0c8b2138
@@ -56,6 +56,20 @@ module RailsSemanticLogger
56
56
  # Silence asset logging
57
57
  config.rails_semantic_logger.quiet_assets = false
58
58
 
59
+ # Hash of named tags.
60
+ # Use in a similar fashion to the Rails config.log_tags, except that it is now a hash.
61
+ #
62
+ # Example:
63
+ # config.rails_semantic_logger.named_tags = {
64
+ # request_id: :request_id,
65
+ # ip: :remote_ip,
66
+ # user: -> request { request.cookie_jar['login'] }
67
+ # }
68
+ #
69
+ # Notes:
70
+ # - Nil Values are ignored and will be left out of the named tags.
71
+ config.rails_semantic_logger.named_tags = nil
72
+
59
73
  # Initialize SemanticLogger. In a Rails environment it will automatically
60
74
  # insert itself above the configured rails logger to add support for its
61
75
  # additional features
@@ -194,6 +208,10 @@ module RailsSemanticLogger
194
208
  if config.rails_semantic_logger.processing
195
209
  require('rails_semantic_logger/extensions/action_controller/log_subscriber_processing') if defined?(ActionView::LogSubscriber)
196
210
  end
211
+
212
+ if config.rails_semantic_logger.named_tags && defined?(Rails::Rack::Logger)
213
+ Rails::Rack::Logger.named_tags = config.rails_semantic_logger.named_tags
214
+ end
197
215
  end
198
216
 
199
217
  # Before any initializers run, but after the gems have been loaded
@@ -11,7 +11,7 @@ module ActionController
11
11
  def process_action(event)
12
12
  controller_logger(event).info do
13
13
  payload = event.payload.dup
14
- payload[:params].except!(*INTERNAL_PARAMS)
14
+ payload[:params] = payload[:params].to_unsafe_h.except(*INTERNAL_PARAMS)
15
15
  payload.delete(:params) if payload[:params].empty?
16
16
 
17
17
  format = payload[:format]
@@ -69,6 +69,7 @@ module ActionController
69
69
  expire_fragment expire_page write_page).each do |method|
70
70
  class_eval <<-METHOD, __FILE__, __LINE__ + 1
71
71
  def #{method}(event)
72
+ return unless ActionController::Base.enable_fragment_cache_logging
72
73
  controller_logger(event).info do
73
74
  key_or_path = event.payload[:key] || event.payload[:path]
74
75
  {message: "#{method.to_s.humanize} \#{key_or_path}", duration: event.duration}
@@ -4,10 +4,20 @@ Rails::Rack::Logger
4
4
  module Rails
5
5
  module Rack
6
6
  class Logger
7
- @@logger = SemanticLogger['Rack']
7
+ mattr_accessor :named_tags
8
+
9
+ @logger = SemanticLogger['Rack']
8
10
 
9
11
  def self.logger
10
- @@logger
12
+ @logger
13
+ end
14
+
15
+ def call(env)
16
+ request = ActionDispatch::Request.new(env)
17
+
18
+ proc = -> { call_app(request, env) }
19
+ proc = -> { logger.tagged(compute_tags(request), &proc) } if @taggers && !@taggers.empty?
20
+ named_tags ? SemanticLogger.named_tagged(compute_named_tags(request), &proc) : proc.call
11
21
  end
12
22
 
13
23
  def started_request_message(request)
@@ -27,6 +37,23 @@ module Rails
27
37
  self.class.logger
28
38
  end
29
39
 
40
+ def compute_named_tags(request) # :doc:
41
+ tagged = {}
42
+ named_tags.each_pair do |tag, value|
43
+ resolved =
44
+ case value
45
+ when Proc
46
+ value.call(request)
47
+ when Symbol
48
+ request.send(value)
49
+ else
50
+ value
51
+ end
52
+ tagged[tag] = resolved unless resolved.nil?
53
+ end
54
+ tagged
55
+ end
56
+
30
57
  end
31
58
  end
32
59
  end
@@ -5,7 +5,7 @@ module Rails
5
5
  module Rack
6
6
  class Logger
7
7
  def self.logger
8
- @@logger
8
+ @logger
9
9
  end
10
10
 
11
11
  private
@@ -23,8 +23,8 @@ module Rails
23
23
  self.class.logger
24
24
  end
25
25
 
26
- @@logger = SemanticLogger['Rack']
27
- @@logger.extend(LogInfoAsDebug)
26
+ @logger = SemanticLogger['Rack']
27
+ @logger.extend(LogInfoAsDebug)
28
28
  end
29
29
  end
30
30
  end
@@ -1,3 +1,3 @@
1
1
  module RailsSemanticLogger #:nodoc
2
- VERSION = '4.0.1'
2
+ VERSION = '4.1.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_semantic_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.1
4
+ version: 4.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Reid Morrison
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-13 00:00:00.000000000 Z
11
+ date: 2017-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '4.0'
33
+ version: '4.1'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '4.0'
40
+ version: '4.1'
41
41
  description: Replaces the default Rails logger with SemanticLogger
42
42
  email:
43
43
  - reidmo@gmail.com