rails_semantic_logger 4.4.5 → 4.4.6

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
  SHA256:
3
- metadata.gz: c899a97af82d65b03bee094d84f29ea78e62afb88b47bbf1dd9809805df998d3
4
- data.tar.gz: a0feb72c5299a8ee795a9a797405d15732094bae04d2dab5a582d5197139b20c
3
+ metadata.gz: de0436e82a0d6ed583904e4da19a5dbc5611e7673b1b9904b0b4757f00e71057
4
+ data.tar.gz: 42335c2218f2d434f352f695c9ce2cc9362c7b7cbe70664a3585d5910c91e6f7
5
5
  SHA512:
6
- metadata.gz: a7146775a00bbc077bb374a71f0dcd04c675bd9398f5169c2b22557a1f04072e3abd7aaf8ee606836f64d062033e12d5f01dd52390c988ef5be30c4e302d905e
7
- data.tar.gz: cd7ce812d642c7afb72468941acafae6282ea749e655615e3441fafb6a221ad1a0c26625dd330a6278d058ded947bbc20afe6e206e9b0aab82bf1e5a7049cce8
6
+ metadata.gz: e0681cc160523f2cef6b6c5fdb169147150bf26470ce628210877e41691911fd81c0f800320dea191d61c6e7be0e3b2ad9d6bf259d0b711caad1c934ec914a72
7
+ data.tar.gz: 3e276c344146b0b16b71b1bfa915b0e8d602c20c750322fca09179c95ac3d85a1138e7b8bbaa96fc62f30effaf09d36cde8e5e7eb8268edbcf3f0e7f1c597f3c
@@ -1,4 +1,5 @@
1
1
  require "semantic_logger"
2
+ require "rails_semantic_logger/extensions/rails/server" if defined?(Rails::Server)
2
3
  require "rails_semantic_logger/engine"
3
4
 
4
5
  module RailsSemanticLogger
@@ -38,8 +38,12 @@ module RailsSemanticLogger
38
38
  end
39
39
 
40
40
  payload[:status_message] = ::Rack::Utils::HTTP_STATUS_CODES[payload[:status]] if payload[:status].present?
41
+
41
42
  # Causes excessive log output with Rails 5 RC1
42
43
  payload.delete(:headers)
44
+ # Causes recursion in Rails 6.1.rc1
45
+ payload.delete(:request)
46
+ payload.delete(:response)
43
47
 
44
48
  params = payload[:params]
45
49
  if params
@@ -33,191 +33,184 @@ module RailsSemanticLogger
33
33
  initializer :initialize_logger, group: :all do
34
34
  config = Rails.application.config
35
35
 
36
- unless config.rails_semantic_logger.disabled
37
- # Set the default log level based on the Rails config
38
- SemanticLogger.default_level = config.log_level
36
+ # Set the default log level based on the Rails config
37
+ SemanticLogger.default_level = config.log_level
39
38
 
40
- if defined?(Rails::Rack::Logger) && config.rails_semantic_logger.semantic
41
- config.middleware.swap(Rails::Rack::Logger, RailsSemanticLogger::Rack::Logger, config.log_tags)
42
- end
39
+ if defined?(Rails::Rack::Logger) && config.rails_semantic_logger.semantic
40
+ config.middleware.swap(Rails::Rack::Logger, RailsSemanticLogger::Rack::Logger, config.log_tags)
41
+ end
43
42
 
44
- # Existing loggers are ignored because servers like trinidad supply their
45
- # own file loggers which would result in duplicate logging to the same log file
46
- Rails.logger = config.logger =
47
- begin
48
- if config.rails_semantic_logger.add_file_appender
49
- path = config.paths["log"].first
50
- FileUtils.mkdir_p(File.dirname(path)) unless File.exist?(File.dirname(path))
51
-
52
- # Add the log file to the list of appenders
53
- # Use the colorized formatter if Rails colorized logs are enabled
54
- ap_options = config.rails_semantic_logger.ap_options
55
- formatter = config.rails_semantic_logger.format
56
- formatter = {color: {ap: ap_options}} if (formatter == :default) && (config.colorize_logging != false)
57
-
58
- # Set internal logger to log to file only, in case another appender experiences errors during writes
59
- appender = SemanticLogger::Appender::File.new(
60
- file_name: path,
61
- level: config.log_level,
62
- formatter: formatter
63
- )
64
- appender.name = "SemanticLogger"
65
- SemanticLogger::Processor.logger = appender
66
-
67
- # Check for previous file or stdout loggers
68
- SemanticLogger.appenders.each { |app| app.formatter = formatter if app.is_a?(SemanticLogger::Appender::File) }
69
- SemanticLogger.add_appender(file_name: path, formatter: formatter, filter: config.rails_semantic_logger.filter)
70
- end
71
-
72
- SemanticLogger[Rails]
73
- rescue StandardError => e
74
- # If not able to log to file, log to standard error with warning level only
75
- SemanticLogger.default_level = :warn
76
-
77
- SemanticLogger::Processor.logger = SemanticLogger::Appender::File.new(io: STDERR)
78
- SemanticLogger.add_appender(io: STDERR)
79
-
80
- logger = SemanticLogger[Rails]
81
- logger.warn(
82
- "Rails Error: Unable to access log file. Please ensure that #{path} exists and is chmod 0666. " \
83
- "The log level has been raised to WARN and the output directed to STDERR until the problem is fixed.",
84
- e
43
+ # Existing loggers are ignored because servers like trinidad supply their
44
+ # own file loggers which would result in duplicate logging to the same log file
45
+ Rails.logger = config.logger =
46
+ begin
47
+ if config.rails_semantic_logger.add_file_appender
48
+ path = config.paths["log"].first
49
+ FileUtils.mkdir_p(File.dirname(path)) unless File.exist?(File.dirname(path))
50
+
51
+ # Add the log file to the list of appenders
52
+ # Use the colorized formatter if Rails colorized logs are enabled
53
+ ap_options = config.rails_semantic_logger.ap_options
54
+ formatter = config.rails_semantic_logger.format
55
+ formatter = {color: {ap: ap_options}} if (formatter == :default) && (config.colorize_logging != false)
56
+
57
+ # Set internal logger to log to file only, in case another appender experiences errors during writes
58
+ appender = SemanticLogger::Appender::File.new(
59
+ file_name: path,
60
+ level: config.log_level,
61
+ formatter: formatter
85
62
  )
86
- logger
63
+ appender.name = "SemanticLogger"
64
+ SemanticLogger::Processor.logger = appender
65
+
66
+ # Check for previous file or stdout loggers
67
+ SemanticLogger.appenders.each { |app| app.formatter = formatter if app.is_a?(SemanticLogger::Appender::File) }
68
+ SemanticLogger.add_appender(file_name: path, formatter: formatter, filter: config.rails_semantic_logger.filter)
87
69
  end
88
70
 
89
- # Replace Rails loggers
90
- %i[active_record action_controller action_mailer action_view].each do |name|
91
- ActiveSupport.on_load(name) { include SemanticLogger::Loggable }
71
+ SemanticLogger[Rails]
72
+ rescue StandardError => e
73
+ # If not able to log to file, log to standard error with warning level only
74
+ SemanticLogger.default_level = :warn
75
+
76
+ SemanticLogger::Processor.logger = SemanticLogger::Appender::File.new(io: STDERR)
77
+ SemanticLogger.add_appender(io: STDERR)
78
+
79
+ logger = SemanticLogger[Rails]
80
+ logger.warn(
81
+ "Rails Error: Unable to access log file. Please ensure that #{path} exists and is chmod 0666. " \
82
+ "The log level has been raised to WARN and the output directed to STDERR until the problem is fixed.",
83
+ e
84
+ )
85
+ logger
92
86
  end
93
- ActiveSupport.on_load(:action_cable) { self.logger = SemanticLogger["ActionCable"] }
87
+
88
+ # Replace Rails loggers
89
+ %i[active_record action_controller action_mailer action_view].each do |name|
90
+ ActiveSupport.on_load(name) { include SemanticLogger::Loggable }
94
91
  end
92
+ ActiveSupport.on_load(:action_cable) { self.logger = SemanticLogger["ActionCable"] }
95
93
  end
96
94
 
97
95
  # Before any initializers run, but after the gems have been loaded
98
96
  config.before_initialize do
99
- unless config.rails_semantic_logger.disabled
100
- if config.respond_to?(:assets) && defined?(Rails::Rack::Logger) && config.rails_semantic_logger.semantic
101
- config.rails_semantic_logger.quiet_assets = true if config.assets.quiet
97
+ if config.respond_to?(:assets) && defined?(Rails::Rack::Logger) && config.rails_semantic_logger.semantic
98
+ config.rails_semantic_logger.quiet_assets = true if config.assets.quiet
102
99
 
103
- # Otherwise Sprockets can't find the Rails::Rack::Logger middleware
104
- config.assets.quiet = false
105
- end
106
-
107
- # Replace the Mongo Loggers
108
- Mongoid.logger = SemanticLogger[Mongoid] if defined?(Mongoid)
109
- Moped.logger = SemanticLogger[Moped] if defined?(Moped)
110
- Mongo::Logger.logger = SemanticLogger[Mongo] if defined?(Mongo::Logger)
100
+ # Otherwise Sprockets can't find the Rails::Rack::Logger middleware
101
+ config.assets.quiet = false
102
+ end
111
103
 
112
- # Replace the Resque Logger
113
- Resque.logger = SemanticLogger[Resque] if defined?(Resque) && Resque.respond_to?(:logger)
104
+ # Replace the Mongo Loggers
105
+ Mongoid.logger = SemanticLogger[Mongoid] if defined?(Mongoid)
106
+ Moped.logger = SemanticLogger[Moped] if defined?(Moped)
107
+ Mongo::Logger.logger = SemanticLogger[Mongo] if defined?(Mongo::Logger)
114
108
 
115
- # Replace the Sidekiq logger
116
- Sidekiq.logger = SemanticLogger[Sidekiq] if defined?(Sidekiq)
109
+ # Replace the Resque Logger
110
+ Resque.logger = SemanticLogger[Resque] if defined?(Resque) && Resque.respond_to?(:logger)
117
111
 
118
- # Replace the Sidetiq logger
119
- Sidetiq.logger = SemanticLogger[Sidetiq] if defined?(Sidetiq)
112
+ # Replace the Sidekiq logger
113
+ Sidekiq.logger = SemanticLogger[Sidekiq] if defined?(Sidekiq)
120
114
 
121
- # Replace the DelayedJob logger
122
- if defined?(Delayed::Worker)
123
- Delayed::Worker.logger = SemanticLogger[Delayed::Worker]
124
- Delayed::Worker.plugins << RailsSemanticLogger::DelayedJob::Plugin
125
- end
115
+ # Replace the Sidetiq logger
116
+ Sidetiq.logger = SemanticLogger[Sidetiq] if defined?(Sidetiq)
126
117
 
127
- # Replace the Bugsnag logger
128
- Bugsnag.configure { |config| config.logger = SemanticLogger[Bugsnag] } if defined?(Bugsnag)
118
+ # Replace the DelayedJob logger
119
+ if defined?(Delayed::Worker)
120
+ Delayed::Worker.logger = SemanticLogger[Delayed::Worker]
121
+ Delayed::Worker.plugins << RailsSemanticLogger::DelayedJob::Plugin
129
122
  end
123
+
124
+ # Replace the Bugsnag logger
125
+ Bugsnag.configure { |config| config.logger = SemanticLogger[Bugsnag] } if defined?(Bugsnag)
130
126
  end
131
127
 
132
128
  # After any initializers run, but after the gems have been loaded
133
129
  config.after_initialize do
134
- unless config.rails_semantic_logger.disabled
135
- # Replace the Bugsnag logger
136
- Bugsnag.configure { |config| config.logger = SemanticLogger[Bugsnag] } if defined?(Bugsnag)
137
-
138
- # Rails Patches
139
- require("rails_semantic_logger/extensions/action_cable/tagged_logger_proxy") if defined?(ActionCable)
140
- require("rails_semantic_logger/extensions/action_controller/live") if defined?(ActionController::Live)
141
- require("rails_semantic_logger/extensions/action_dispatch/debug_exceptions") if defined?(ActionDispatch::DebugExceptions)
142
- if defined?(ActionView::StreamingTemplateRenderer::Body)
143
- require("rails_semantic_logger/extensions/action_view/streaming_template_renderer")
144
- end
145
- require("rails_semantic_logger/extensions/active_job/logging") if defined?(::ActiveJob)
146
- require("rails_semantic_logger/extensions/active_model_serializers/logging") if defined?(ActiveModelSerializers)
147
- require("rails_semantic_logger/extensions/rails/server") if defined?(Rails::Server)
148
-
149
- if config.rails_semantic_logger.semantic
150
- # Active Job
151
- if defined?(::ActiveJob) && defined?(::ActiveJob::Logging::LogSubscriber)
152
- RailsSemanticLogger.swap_subscriber(
153
- ::ActiveJob::Logging::LogSubscriber,
154
- RailsSemanticLogger::ActiveJob::LogSubscriber,
155
- :active_job
156
- )
157
- end
158
-
159
- if defined?(::ActiveJob) && defined?(::ActiveJob::LogSubscriber)
160
- RailsSemanticLogger.swap_subscriber(
161
- ::ActiveJob::LogSubscriber,
162
- RailsSemanticLogger::ActiveJob::LogSubscriber,
163
- :active_job
164
- )
165
- end
166
-
167
- # Active Record
168
- if defined?(::ActiveRecord)
169
- require "active_record/log_subscriber"
170
-
171
- RailsSemanticLogger.swap_subscriber(
172
- ::ActiveRecord::LogSubscriber,
173
- RailsSemanticLogger::ActiveRecord::LogSubscriber,
174
- :active_record
175
- )
176
- end
177
-
178
- # Rack
179
- RailsSemanticLogger::Rack::Logger.started_request_log_level = :info if config.rails_semantic_logger.started
130
+ # Replace the Bugsnag logger
131
+ Bugsnag.configure { |config| config.logger = SemanticLogger[Bugsnag] } if defined?(Bugsnag)
132
+
133
+ # Rails Patches
134
+ require("rails_semantic_logger/extensions/action_cable/tagged_logger_proxy") if defined?(ActionCable)
135
+ require("rails_semantic_logger/extensions/action_controller/live") if defined?(ActionController::Live)
136
+ require("rails_semantic_logger/extensions/action_dispatch/debug_exceptions") if defined?(ActionDispatch::DebugExceptions)
137
+ if defined?(ActionView::StreamingTemplateRenderer::Body)
138
+ require("rails_semantic_logger/extensions/action_view/streaming_template_renderer")
139
+ end
140
+ require("rails_semantic_logger/extensions/active_job/logging") if defined?(::ActiveJob)
141
+ require("rails_semantic_logger/extensions/active_model_serializers/logging") if defined?(ActiveModelSerializers)
180
142
 
181
- # Silence asset logging by applying a filter to the Rails logger itself, not any of the appenders.
182
- if config.rails_semantic_logger.quiet_assets && config.assets.prefix
183
- assets_regex = %r(\A/{0,2}#{config.assets.prefix})
184
- RailsSemanticLogger::Rack::Logger.logger.filter = ->(log) { log.payload[:path] !~ assets_regex if log.payload }
185
- end
143
+ if config.rails_semantic_logger.semantic
144
+ # Active Job
145
+ if defined?(::ActiveJob) && defined?(::ActiveJob::Logging::LogSubscriber)
146
+ RailsSemanticLogger.swap_subscriber(
147
+ ::ActiveJob::Logging::LogSubscriber,
148
+ RailsSemanticLogger::ActiveJob::LogSubscriber,
149
+ :active_job
150
+ )
151
+ end
186
152
 
187
- # Action View
188
- RailsSemanticLogger::ActionView::LogSubscriber.rendered_log_level = :info if config.rails_semantic_logger.rendered
153
+ if defined?(::ActiveJob) && defined?(::ActiveJob::LogSubscriber)
189
154
  RailsSemanticLogger.swap_subscriber(
190
- ::ActionView::LogSubscriber,
191
- RailsSemanticLogger::ActionView::LogSubscriber,
192
- :action_view
155
+ ::ActiveJob::LogSubscriber,
156
+ RailsSemanticLogger::ActiveJob::LogSubscriber,
157
+ :active_job
193
158
  )
159
+ end
160
+
161
+ # Active Record
162
+ if defined?(::ActiveRecord)
163
+ require "active_record/log_subscriber"
194
164
 
195
- # Action Controller
196
165
  RailsSemanticLogger.swap_subscriber(
197
- ::ActionController::LogSubscriber,
198
- RailsSemanticLogger::ActionController::LogSubscriber,
199
- :action_controller
166
+ ::ActiveRecord::LogSubscriber,
167
+ RailsSemanticLogger::ActiveRecord::LogSubscriber,
168
+ :active_record
200
169
  )
201
170
  end
202
171
 
203
- #
204
- # Forking Frameworks
205
- #
172
+ # Rack
173
+ RailsSemanticLogger::Rack::Logger.started_request_log_level = :info if config.rails_semantic_logger.started
206
174
 
207
- # Passenger provides the :starting_worker_process event for executing
208
- # code after it has forked, so we use that and reconnect immediately.
209
- if defined?(PhusionPassenger)
210
- PhusionPassenger.on_event(:starting_worker_process) do |forked|
211
- SemanticLogger.reopen if forked
212
- end
175
+ # Silence asset logging by applying a filter to the Rails logger itself, not any of the appenders.
176
+ if config.rails_semantic_logger.quiet_assets && config.assets.prefix
177
+ assets_regex = %r(\A/{0,2}#{config.assets.prefix})
178
+ RailsSemanticLogger::Rack::Logger.logger.filter = ->(log) { log.payload[:path] !~ assets_regex if log.payload }
213
179
  end
214
180
 
215
- # Re-open appenders after Resque has forked a worker
216
- Resque.after_fork { |_job| ::SemanticLogger.reopen } if defined?(Resque)
181
+ # Action View
182
+ RailsSemanticLogger::ActionView::LogSubscriber.rendered_log_level = :info if config.rails_semantic_logger.rendered
183
+ RailsSemanticLogger.swap_subscriber(
184
+ ::ActionView::LogSubscriber,
185
+ RailsSemanticLogger::ActionView::LogSubscriber,
186
+ :action_view
187
+ )
188
+
189
+ # Action Controller
190
+ RailsSemanticLogger.swap_subscriber(
191
+ ::ActionController::LogSubscriber,
192
+ RailsSemanticLogger::ActionController::LogSubscriber,
193
+ :action_controller
194
+ )
195
+ end
217
196
 
218
- # Re-open appenders after Spring has forked a process
219
- Spring.after_fork { |_job| ::SemanticLogger.reopen } if defined?(Spring.after_fork)
197
+ #
198
+ # Forking Frameworks
199
+ #
200
+
201
+ # Passenger provides the :starting_worker_process event for executing
202
+ # code after it has forked, so we use that and reconnect immediately.
203
+ if defined?(PhusionPassenger)
204
+ PhusionPassenger.on_event(:starting_worker_process) do |forked|
205
+ SemanticLogger.reopen if forked
206
+ end
220
207
  end
208
+
209
+ # Re-open appenders after Resque has forked a worker
210
+ Resque.after_fork { |_job| ::SemanticLogger.reopen } if defined?(Resque)
211
+
212
+ # Re-open appenders after Spring has forked a process
213
+ Spring.after_fork { |_job| ::SemanticLogger.reopen } if defined?(Spring.after_fork)
221
214
  end
222
215
  end
223
216
  end
@@ -98,7 +98,7 @@ module RailsSemanticLogger
98
98
  # config.rails_semantic_logger.named_tags = nil
99
99
  class Options
100
100
  attr_accessor :semantic, :started, :processing, :rendered, :ap_options, :add_file_appender,
101
- :quiet_assets, :format, :named_tags, :filter, :disabled
101
+ :quiet_assets, :format, :named_tags, :filter
102
102
 
103
103
  # Setup default values
104
104
  def initialize
@@ -112,7 +112,6 @@ module RailsSemanticLogger
112
112
  @format = :default
113
113
  @named_tags = nil
114
114
  @filter = nil
115
- @disabled = false
116
115
  end
117
116
  end
118
117
  end
@@ -1,3 +1,3 @@
1
1
  module RailsSemanticLogger
2
- VERSION = "4.4.5".freeze
2
+ VERSION = "4.4.6".freeze
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.4.5
4
+ version: 4.4.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Reid Morrison
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-21 00:00:00.000000000 Z
11
+ date: 2020-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -98,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
98
  - !ruby/object:Gem::Version
99
99
  version: '0'
100
100
  requirements: []
101
- rubygems_version: 3.1.4
101
+ rubygems_version: 3.0.8
102
102
  signing_key:
103
103
  specification_version: 4
104
104
  summary: Feature rich logging framework that replaces the Rails logger.