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