rails_semantic_logger 4.20.0 → 5.0.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/README.md +55 -98
- data/Rakefile +7 -4
- data/lib/rails_semantic_logger/action_controller/log_subscriber.rb +86 -16
- data/lib/rails_semantic_logger/action_mailer/log_subscriber.rb +36 -22
- data/lib/rails_semantic_logger/action_view/log_subscriber.rb +74 -40
- data/lib/rails_semantic_logger/active_job/log_subscriber.rb +216 -7
- data/lib/rails_semantic_logger/active_record/log_subscriber.rb +62 -160
- data/lib/rails_semantic_logger/appenders.rb +91 -0
- data/lib/rails_semantic_logger/engine.rb +47 -36
- data/lib/rails_semantic_logger/extensions/action_cable/tagged_logger_proxy.rb +44 -3
- data/lib/rails_semantic_logger/extensions/action_dispatch/debug_exceptions.rb +5 -14
- data/lib/rails_semantic_logger/extensions/active_job/logging.rb +2 -2
- data/lib/rails_semantic_logger/extensions/active_model_serializers/logging.rb +2 -2
- data/lib/rails_semantic_logger/extensions/active_support/logger.rb +24 -15
- data/lib/rails_semantic_logger/extensions/rails/server.rb +1 -1
- data/lib/rails_semantic_logger/extensions/sidekiq/sidekiq.rb +4 -4
- data/lib/rails_semantic_logger/options.rb +171 -20
- data/lib/rails_semantic_logger/rack/logger.rb +6 -13
- data/lib/rails_semantic_logger/sidekiq/defaults.rb +4 -2
- data/lib/rails_semantic_logger/sidekiq/job_logger.rb +13 -5
- data/lib/rails_semantic_logger/solid_queue/log_subscriber.rb +179 -0
- data/lib/rails_semantic_logger/version.rb +1 -1
- data/lib/rails_semantic_logger.rb +81 -26
- metadata +15 -21
- data/lib/rails_semantic_logger/delayed_job/plugin.rb +0 -11
- data/lib/rails_semantic_logger/extensions/active_support/log_subscriber.rb +0 -13
- data/lib/rails_semantic_logger/extensions/rack/server.rb +0 -12
- data/lib/rails_semantic_logger/extensions/rackup/server.rb +0 -12
|
@@ -27,18 +27,93 @@ module RailsSemanticLogger
|
|
|
27
27
|
autoload :Logger, "rails_semantic_logger/rack/logger"
|
|
28
28
|
end
|
|
29
29
|
|
|
30
|
-
module DelayedJob
|
|
31
|
-
autoload :Plugin, "rails_semantic_logger/delayed_job/plugin"
|
|
32
|
-
end
|
|
33
|
-
|
|
34
30
|
module Sidekiq
|
|
35
31
|
autoload :Defaults, "rails_semantic_logger/sidekiq/defaults"
|
|
36
32
|
autoload :JobLogger, "rails_semantic_logger/sidekiq/job_logger"
|
|
37
33
|
autoload :Loggable, "rails_semantic_logger/sidekiq/loggable"
|
|
38
34
|
end
|
|
39
35
|
|
|
36
|
+
module SolidQueue
|
|
37
|
+
autoload :LogSubscriber, "rails_semantic_logger/solid_queue/log_subscriber"
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
autoload :Appenders, "rails_semantic_logger/appenders"
|
|
40
41
|
autoload :Options, "rails_semantic_logger/options"
|
|
41
42
|
|
|
43
|
+
# Deprecator used for options that are being phased out in favor of declaring
|
|
44
|
+
# appenders directly (see RailsSemanticLogger::Appenders).
|
|
45
|
+
def self.deprecator
|
|
46
|
+
@deprecator ||= ActiveSupport::Deprecation.new("6.0", "rails_semantic_logger")
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Warn that a setting was changed too late to take effect, so the change has no
|
|
50
|
+
# effect. When `config_initializers_too_late` is true (the default), the setting
|
|
51
|
+
# is consumed while the logger is built, *before* `config/initializers/*` is
|
|
52
|
+
# loaded, so that location is called out as too late. When false, the setting is
|
|
53
|
+
# consumed at the end of initialization (`config/initializers/*` still works) and
|
|
54
|
+
# only a change after the application has booted is too late.
|
|
55
|
+
def self.warn_initialized_too_late(setting, config_initializers_too_late: true)
|
|
56
|
+
env = defined?(Rails) && Rails.respond_to?(:env) ? Rails.env : "<env>"
|
|
57
|
+
locations = "`config/application.rb` or `config/environments/#{env}.rb`"
|
|
58
|
+
locations += " (or a `config/initializers/*` file)" unless config_initializers_too_late
|
|
59
|
+
suffix = config_initializers_too_late ? "; `config/initializers/*` is loaded too late." : "."
|
|
60
|
+
warn(
|
|
61
|
+
"[rails_semantic_logger] `config.rails_semantic_logger.#{setting}` was set too late to take " \
|
|
62
|
+
"effect, so it has no effect. Set it in #{locations}#{suffix}"
|
|
63
|
+
)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# Create the appenders declared via `config.rails_semantic_logger.appenders` with
|
|
67
|
+
# `add_server` (or the default console appender when the application declared no
|
|
68
|
+
# appenders of its own).
|
|
69
|
+
#
|
|
70
|
+
# Called automatically for the server contexts that have a first-party hook
|
|
71
|
+
# (`rails server`, Sidekiq in server mode). App servers without such a hook (bare
|
|
72
|
+
# puma, rackup, Passenger, Unicorn) cannot be detected reliably, so call this from
|
|
73
|
+
# the server's own definitive boot hook instead of relying on a guess. Example,
|
|
74
|
+
# in `config/puma.rb`:
|
|
75
|
+
#
|
|
76
|
+
# on_booted { RailsSemanticLogger.add_server_appenders }
|
|
77
|
+
def self.add_server_appenders
|
|
78
|
+
options = Rails.application.config.rails_semantic_logger
|
|
79
|
+
# Backward compatibility
|
|
80
|
+
if !options.appenders? && options.console_logger && !SemanticLogger.appenders.console_output?
|
|
81
|
+
SemanticLogger.add_appender(io: $stdout, formatter: :color)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
options.appenders.server.each do |args, block|
|
|
85
|
+
SemanticLogger.add_appender(**args, &block)
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
# Console (REPL) counterpart of .add_server_appenders, used by the `rails console`
|
|
90
|
+
# hook. When the application declared its own appenders, its `add_console`
|
|
91
|
+
# declarations apply; otherwise the deprecated `console_logger` toggle decides
|
|
92
|
+
# whether the default stderr console appender is added.
|
|
93
|
+
def self.add_console_appenders
|
|
94
|
+
options = Rails.application.config.rails_semantic_logger
|
|
95
|
+
# Backward compatibility: honor the deprecated console_logger toggle.
|
|
96
|
+
if !options.appenders? && options.console_logger && !SemanticLogger.appenders.console_output?
|
|
97
|
+
SemanticLogger.add_appender(io: $stderr, formatter: :color)
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
options.appenders.console.each do |args, block|
|
|
101
|
+
SemanticLogger.add_appender(**args, &block)
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
# Create each appender declared via `config.rails_semantic_logger.appenders`.
|
|
106
|
+
# The first file appender (if any) becomes the internal logger, so that any
|
|
107
|
+
# failures writing to other appenders are still recorded somewhere durable.
|
|
108
|
+
def self.add_appenders(appenders)
|
|
109
|
+
internal_logger = nil
|
|
110
|
+
appenders.each do |args, block|
|
|
111
|
+
appender = SemanticLogger.add_appender(**args, &block)
|
|
112
|
+
internal_logger ||= appender if appender.is_a?(SemanticLogger::Appender::File)
|
|
113
|
+
end
|
|
114
|
+
SemanticLogger::Processor.logger = internal_logger if internal_logger
|
|
115
|
+
end
|
|
116
|
+
|
|
42
117
|
# Swap an existing subscriber with a new one
|
|
43
118
|
def self.swap_subscriber(old_class, new_class, notifier)
|
|
44
119
|
subscribers = ActiveSupport::LogSubscriber.subscribers.select { |s| s.is_a?(old_class) }
|
|
@@ -60,19 +135,11 @@ module RailsSemanticLogger
|
|
|
60
135
|
end
|
|
61
136
|
|
|
62
137
|
def self.subscriber_patterns(subscriber)
|
|
63
|
-
|
|
64
|
-
subscriber.patterns.keys
|
|
65
|
-
else
|
|
66
|
-
subscriber.patterns
|
|
67
|
-
end
|
|
138
|
+
subscriber.patterns.keys
|
|
68
139
|
end
|
|
69
140
|
|
|
70
141
|
def self.listeners_for(notifier, pattern)
|
|
71
|
-
|
|
72
|
-
notifier.all_listeners_for(pattern)
|
|
73
|
-
else
|
|
74
|
-
notifier.listeners_for(pattern)
|
|
75
|
-
end
|
|
142
|
+
notifier.all_listeners_for(pattern)
|
|
76
143
|
end
|
|
77
144
|
|
|
78
145
|
private_class_method :listeners_for, :subscriber_patterns, :unattach
|
|
@@ -80,15 +147,3 @@ end
|
|
|
80
147
|
|
|
81
148
|
require("rails_semantic_logger/extensions/mongoid/config") if defined?(Mongoid)
|
|
82
149
|
require("rails_semantic_logger/extensions/active_support/logger") if defined?(ActiveSupport::Logger)
|
|
83
|
-
require("rails_semantic_logger/extensions/active_support/log_subscriber") if defined?(ActiveSupport::LogSubscriber)
|
|
84
|
-
|
|
85
|
-
begin
|
|
86
|
-
require "rackup"
|
|
87
|
-
rescue LoadError
|
|
88
|
-
# No need to do anything, will fall back to Rack
|
|
89
|
-
end
|
|
90
|
-
if defined?(Rackup::Server)
|
|
91
|
-
require("rails_semantic_logger/extensions/rackup/server")
|
|
92
|
-
elsif defined?(Rack::Server)
|
|
93
|
-
require("rails_semantic_logger/extensions/rack/server")
|
|
94
|
-
end
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rails_semantic_logger
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 5.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Reid Morrison
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: rack
|
|
@@ -30,30 +29,28 @@ dependencies:
|
|
|
30
29
|
requirements:
|
|
31
30
|
- - ">="
|
|
32
31
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
32
|
+
version: '7.2'
|
|
34
33
|
type: :runtime
|
|
35
34
|
prerelease: false
|
|
36
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
36
|
requirements:
|
|
38
37
|
- - ">="
|
|
39
38
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
39
|
+
version: '7.2'
|
|
41
40
|
- !ruby/object:Gem::Dependency
|
|
42
41
|
name: semantic_logger
|
|
43
42
|
requirement: !ruby/object:Gem::Requirement
|
|
44
43
|
requirements:
|
|
45
|
-
- - "
|
|
44
|
+
- - ">="
|
|
46
45
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
46
|
+
version: '5.0'
|
|
48
47
|
type: :runtime
|
|
49
48
|
prerelease: false
|
|
50
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
50
|
requirements:
|
|
52
|
-
- - "
|
|
51
|
+
- - ">="
|
|
53
52
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '
|
|
55
|
-
description:
|
|
56
|
-
email:
|
|
53
|
+
version: '5.0'
|
|
57
54
|
executables: []
|
|
58
55
|
extensions: []
|
|
59
56
|
extra_rdoc_files: []
|
|
@@ -67,7 +64,7 @@ files:
|
|
|
67
64
|
- lib/rails_semantic_logger/action_view/log_subscriber.rb
|
|
68
65
|
- lib/rails_semantic_logger/active_job/log_subscriber.rb
|
|
69
66
|
- lib/rails_semantic_logger/active_record/log_subscriber.rb
|
|
70
|
-
- lib/rails_semantic_logger/
|
|
67
|
+
- lib/rails_semantic_logger/appenders.rb
|
|
71
68
|
- lib/rails_semantic_logger/engine.rb
|
|
72
69
|
- lib/rails_semantic_logger/extensions/action_cable/tagged_logger_proxy.rb
|
|
73
70
|
- lib/rails_semantic_logger/extensions/action_controller/live.rb
|
|
@@ -75,12 +72,9 @@ files:
|
|
|
75
72
|
- lib/rails_semantic_logger/extensions/action_view/streaming_template_renderer.rb
|
|
76
73
|
- lib/rails_semantic_logger/extensions/active_job/logging.rb
|
|
77
74
|
- lib/rails_semantic_logger/extensions/active_model_serializers/logging.rb
|
|
78
|
-
- lib/rails_semantic_logger/extensions/active_support/log_subscriber.rb
|
|
79
75
|
- lib/rails_semantic_logger/extensions/active_support/logger.rb
|
|
80
76
|
- lib/rails_semantic_logger/extensions/active_support/tagged_logging.rb
|
|
81
77
|
- lib/rails_semantic_logger/extensions/mongoid/config.rb
|
|
82
|
-
- lib/rails_semantic_logger/extensions/rack/server.rb
|
|
83
|
-
- lib/rails_semantic_logger/extensions/rackup/server.rb
|
|
84
78
|
- lib/rails_semantic_logger/extensions/rails/server.rb
|
|
85
79
|
- lib/rails_semantic_logger/extensions/sidekiq/sidekiq.rb
|
|
86
80
|
- lib/rails_semantic_logger/options.rb
|
|
@@ -88,6 +82,7 @@ files:
|
|
|
88
82
|
- lib/rails_semantic_logger/sidekiq/defaults.rb
|
|
89
83
|
- lib/rails_semantic_logger/sidekiq/job_logger.rb
|
|
90
84
|
- lib/rails_semantic_logger/sidekiq/loggable.rb
|
|
85
|
+
- lib/rails_semantic_logger/solid_queue/log_subscriber.rb
|
|
91
86
|
- lib/rails_semantic_logger/version.rb
|
|
92
87
|
homepage: https://logger.rocketjob.io
|
|
93
88
|
licenses:
|
|
@@ -95,9 +90,8 @@ licenses:
|
|
|
95
90
|
metadata:
|
|
96
91
|
bug_tracker_uri: https://github.com/reidmorrison/rails_semantic_logger/issues
|
|
97
92
|
documentation_uri: https://logger.rocketjob.io
|
|
98
|
-
source_code_uri: https://github.com/reidmorrison/rails_semantic_logger/tree/
|
|
93
|
+
source_code_uri: https://github.com/reidmorrison/rails_semantic_logger/tree/v5.0.0
|
|
99
94
|
rubygems_mfa_required: 'true'
|
|
100
|
-
post_install_message:
|
|
101
95
|
rdoc_options: []
|
|
102
96
|
require_paths:
|
|
103
97
|
- lib
|
|
@@ -105,15 +99,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
105
99
|
requirements:
|
|
106
100
|
- - ">="
|
|
107
101
|
- !ruby/object:Gem::Version
|
|
108
|
-
version: '2
|
|
102
|
+
version: '3.2'
|
|
109
103
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
110
104
|
requirements:
|
|
111
105
|
- - ">="
|
|
112
106
|
- !ruby/object:Gem::Version
|
|
113
107
|
version: '0'
|
|
114
108
|
requirements: []
|
|
115
|
-
rubygems_version: 3.
|
|
116
|
-
signing_key:
|
|
109
|
+
rubygems_version: 3.6.9
|
|
117
110
|
specification_version: 4
|
|
118
|
-
summary:
|
|
111
|
+
summary: High-performance, asynchronous structured logging that replaces the Rails
|
|
112
|
+
logger.
|
|
119
113
|
test_files: []
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
if ActiveSupport::VERSION::STRING == "7.1.1"
|
|
2
|
-
require "active_support/log_subscriber"
|
|
3
|
-
|
|
4
|
-
module ActiveSupport
|
|
5
|
-
class LogSubscriber
|
|
6
|
-
# @override Rails 7.1
|
|
7
|
-
def silenced?(event)
|
|
8
|
-
native_log_level = @event_levels.fetch(event, ::Logger::Severity::FATAL)
|
|
9
|
-
logger.nil? || SemanticLogger::Levels.index(logger.level) > SemanticLogger::Levels.index(native_log_level)
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|