rails_semantic_logger 4.0.1 → 4.1.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 +4 -4
- data/lib/rails_semantic_logger/engine.rb +18 -0
- data/lib/rails_semantic_logger/extensions/action_controller/log_subscriber.rb +2 -1
- data/lib/rails_semantic_logger/extensions/rails/rack/logger.rb +29 -2
- data/lib/rails_semantic_logger/extensions/rails/rack/logger_info_as_debug.rb +3 -3
- data/lib/rails_semantic_logger/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: 10d16b755cfd965d39a2d7b4d757197633110f70
|
4
|
+
data.tar.gz: 2a1214833f2f880d9e826a237945235aa9786a64
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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
|
-
|
7
|
+
mattr_accessor :named_tags
|
8
|
+
|
9
|
+
@logger = SemanticLogger['Rack']
|
8
10
|
|
9
11
|
def self.logger
|
10
|
-
|
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
|
-
|
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
|
-
|
27
|
-
|
26
|
+
@logger = SemanticLogger['Rack']
|
27
|
+
@logger.extend(LogInfoAsDebug)
|
28
28
|
end
|
29
29
|
end
|
30
30
|
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
|
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-
|
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.
|
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.
|
40
|
+
version: '4.1'
|
41
41
|
description: Replaces the default Rails logger with SemanticLogger
|
42
42
|
email:
|
43
43
|
- reidmo@gmail.com
|