rails_semantic_logger 4.5.1 → 4.9.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/active_job/log_subscriber.rb +12 -7
- data/lib/rails_semantic_logger/active_record/log_subscriber.rb +2 -2
- data/lib/rails_semantic_logger/engine.rb +23 -8
- data/lib/rails_semantic_logger/extensions/action_cable/tagged_logger_proxy.rb +1 -1
- data/lib/rails_semantic_logger/extensions/action_controller/live.rb +3 -1
- data/lib/rails_semantic_logger/extensions/action_dispatch/debug_exceptions.rb +3 -1
- data/lib/rails_semantic_logger/extensions/action_view/streaming_template_renderer.rb +2 -1
- data/lib/rails_semantic_logger/extensions/active_job/logging.rb +1 -0
- data/lib/rails_semantic_logger/extensions/active_support/logger.rb +24 -0
- data/lib/rails_semantic_logger/extensions/active_support/tagged_logging.rb +8 -0
- data/lib/rails_semantic_logger/extensions/mongoid/config.rb +11 -0
- data/lib/rails_semantic_logger/extensions/rack/server.rb +12 -0
- data/lib/rails_semantic_logger/extensions/rails/server.rb +6 -2
- data/lib/rails_semantic_logger/options.rb +7 -2
- data/lib/rails_semantic_logger/version.rb +1 -1
- data/lib/rails_semantic_logger.rb +4 -0
- metadata +12 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e8365956f97589f4c0a37048a4bd342e6b761b3a954f5d4cfd20178633aee5a
|
4
|
+
data.tar.gz: f9fbd1af99f0a4357d17c76a871b0b474fe825e137c9f0871d3d56fe1a7f34bd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b52c5f417d64195d36b0f8ebee40c67173dbefed6ab7a59bd399b345ae93f4d3231552adf215f6e4c4354b205a7e76a86604870ef6e4cbd97f165cd3dc43d5aa
|
7
|
+
data.tar.gz: d069e457c98a43778d61c032f47cc57a93f6db8016118528e9b635fe16fff18c7f47c7e98749243f0f2e034189233af9ee60ca336d1aff9eb4572c2587f041ee
|
@@ -5,29 +5,34 @@ module RailsSemanticLogger
|
|
5
5
|
class LogSubscriber < ::ActiveSupport::LogSubscriber
|
6
6
|
def enqueue(event)
|
7
7
|
log_with_formatter event: event do |fmt|
|
8
|
-
"Enqueued #{fmt.job_info}"
|
8
|
+
{message: "Enqueued #{fmt.job_info}"}
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
12
|
def enqueue_at(event)
|
13
13
|
log_with_formatter event: event do |fmt|
|
14
|
-
"Enqueued #{fmt.job_info} at #{fmt.scheduled_at}"
|
14
|
+
{message: "Enqueued #{fmt.job_info} at #{fmt.scheduled_at}"}
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
18
|
def perform_start(event)
|
19
19
|
log_with_formatter event: event do |fmt|
|
20
|
-
"Performing #{fmt.job_info}"
|
20
|
+
{message: "Performing #{fmt.job_info}"}
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
24
|
def perform(event)
|
25
25
|
ex = event.payload[:exception_object]
|
26
26
|
if ex
|
27
|
-
|
27
|
+
log_with_formatter event: event, log_duration: true, level: :error do |fmt|
|
28
|
+
{
|
29
|
+
message: "Error performing #{fmt.job_info} in #{event.duration.round(2)}ms",
|
30
|
+
exception: ex
|
31
|
+
}
|
32
|
+
end
|
28
33
|
else
|
29
34
|
log_with_formatter event: event, log_duration: true do |fmt|
|
30
|
-
"Performed #{fmt.job_info} in #{event.duration.round(2)}ms"
|
35
|
+
{message: "Performed #{fmt.job_info} in #{event.duration.round(2)}ms"}
|
31
36
|
end
|
32
37
|
end
|
33
38
|
end
|
@@ -107,10 +112,10 @@ module RailsSemanticLogger
|
|
107
112
|
end
|
108
113
|
end
|
109
114
|
|
110
|
-
def log_with_formatter(**kw_args)
|
115
|
+
def log_with_formatter(level: :info, **kw_args)
|
111
116
|
fmt = EventFormatter.new(**kw_args)
|
112
117
|
msg = yield fmt
|
113
|
-
logger.
|
118
|
+
logger.public_send(level, **msg, payload: fmt.payload)
|
114
119
|
end
|
115
120
|
|
116
121
|
def logger
|
@@ -42,7 +42,7 @@ module RailsSemanticLogger
|
|
42
42
|
|
43
43
|
# Log the location of the query itself.
|
44
44
|
if logger.send(:level_index) >= SemanticLogger.backtrace_level_index
|
45
|
-
log[:backtrace] = SemanticLogger::Utils.strip_backtrace
|
45
|
+
log[:backtrace] = SemanticLogger::Utils.strip_backtrace(caller)
|
46
46
|
end
|
47
47
|
|
48
48
|
logger.debug(log)
|
@@ -178,7 +178,7 @@ module RailsSemanticLogger
|
|
178
178
|
attr = nil
|
179
179
|
end
|
180
180
|
|
181
|
-
[attr&.name, value]
|
181
|
+
[attr&.name || :nil, value]
|
182
182
|
end
|
183
183
|
|
184
184
|
def type_casted_binds_v5_0_3(binds, casted_binds)
|
@@ -55,16 +55,16 @@ module RailsSemanticLogger
|
|
55
55
|
formatter = {color: {ap: ap_options}} if (formatter == :default) && (config.colorize_logging != false)
|
56
56
|
|
57
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
|
62
|
-
)
|
58
|
+
appender = SemanticLogger::Appender::File.new(path, formatter: formatter)
|
63
59
|
appender.name = "SemanticLogger"
|
64
60
|
SemanticLogger::Processor.logger = appender
|
65
61
|
|
66
62
|
# Check for previous file or stdout loggers
|
67
|
-
SemanticLogger.appenders.each
|
63
|
+
SemanticLogger.appenders.each do |app|
|
64
|
+
next unless app.is_a?(SemanticLogger::Appender::File) || app.is_a?(SemanticLogger::Appender::IO)
|
65
|
+
|
66
|
+
app.formatter = formatter
|
67
|
+
end
|
68
68
|
SemanticLogger.add_appender(file_name: path, formatter: formatter, filter: config.rails_semantic_logger.filter)
|
69
69
|
end
|
70
70
|
|
@@ -73,8 +73,8 @@ module RailsSemanticLogger
|
|
73
73
|
# If not able to log to file, log to standard error with warning level only
|
74
74
|
SemanticLogger.default_level = :warn
|
75
75
|
|
76
|
-
SemanticLogger::Processor.logger = SemanticLogger::Appender::
|
77
|
-
SemanticLogger.add_appender(io:
|
76
|
+
SemanticLogger::Processor.logger = SemanticLogger::Appender::IO.new($stderr)
|
77
|
+
SemanticLogger.add_appender(io: $stderr)
|
78
78
|
|
79
79
|
logger = SemanticLogger[Rails]
|
80
80
|
logger.warn(
|
@@ -123,6 +123,9 @@ module RailsSemanticLogger
|
|
123
123
|
|
124
124
|
# Replace the Bugsnag logger
|
125
125
|
Bugsnag.configure { |config| config.logger = SemanticLogger[Bugsnag] } if defined?(Bugsnag)
|
126
|
+
|
127
|
+
# Set the IOStreams PGP logger
|
128
|
+
IOStreams::Pgp.logger = SemanticLogger["IOStreams::Pgp"] if defined?(IOStreams)
|
126
129
|
end
|
127
130
|
|
128
131
|
# After any initializers run, but after the gems have been loaded
|
@@ -214,6 +217,18 @@ module RailsSemanticLogger
|
|
214
217
|
|
215
218
|
# Re-open appenders after Spring has forked a process
|
216
219
|
Spring.after_fork { |_job| ::SemanticLogger.reopen } if defined?(Spring.after_fork)
|
220
|
+
|
221
|
+
console do |_app|
|
222
|
+
# Don't use a background thread for logging
|
223
|
+
SemanticLogger.sync!
|
224
|
+
# Add a stderr logger when running inside a Rails console unless one has already been added.
|
225
|
+
if config.rails_semantic_logger.console_logger && !SemanticLogger.appenders.console_output?
|
226
|
+
SemanticLogger.add_appender(io: STDERR, formatter: :color)
|
227
|
+
end
|
228
|
+
|
229
|
+
# Include method names on log entries in the console
|
230
|
+
SemanticLogger.backtrace_level = SemanticLogger.default_level
|
231
|
+
end
|
217
232
|
end
|
218
233
|
end
|
219
234
|
end
|
@@ -1,9 +1,11 @@
|
|
1
1
|
# Log actual exceptions, not a string representation
|
2
|
-
|
2
|
+
require "action_dispatch"
|
3
|
+
|
3
4
|
module ActionDispatch
|
4
5
|
class DebugExceptions
|
5
6
|
private
|
6
7
|
|
8
|
+
undef_method :log_error
|
7
9
|
def log_error(_request, wrapper)
|
8
10
|
ActiveSupport::Deprecation.silence do
|
9
11
|
ActionController::Base.logger.fatal(wrapper.exception)
|
@@ -1,11 +1,12 @@
|
|
1
1
|
# Log actual exceptions, not a string representation
|
2
|
-
|
2
|
+
require "action_view/renderer/streaming_template_renderer"
|
3
3
|
|
4
4
|
module ActionView
|
5
5
|
class StreamingTemplateRenderer
|
6
6
|
class Body
|
7
7
|
private
|
8
8
|
|
9
|
+
undef_method :log_error
|
9
10
|
def log_error(exception)
|
10
11
|
ActionView::Base.logger.fatal(exception)
|
11
12
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require "active_support/logger"
|
2
|
+
|
3
|
+
module ActiveSupport
|
4
|
+
# More hacks to try and stop Rails from being it's own worst enemy.
|
5
|
+
class Logger
|
6
|
+
class << self
|
7
|
+
undef :logger_outputs_to?, :broadcast
|
8
|
+
end
|
9
|
+
|
10
|
+
# Prevent Console from trying to merge loggers
|
11
|
+
def self.logger_outputs_to?(*args)
|
12
|
+
true
|
13
|
+
end
|
14
|
+
|
15
|
+
# Prevent broadcasting since SemanticLogger already supports multiple loggers
|
16
|
+
def self.broadcast(logger)
|
17
|
+
Module.new
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.new(*args, **kwargs)
|
21
|
+
SemanticLogger[self]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -1,10 +1,14 @@
|
|
1
1
|
# Patch the Rails::Server log_to_stdout so that it logs via SemanticLogger
|
2
|
-
|
2
|
+
require "rails"
|
3
|
+
|
3
4
|
module Rails
|
4
5
|
class Server
|
5
6
|
private
|
6
|
-
|
7
|
+
|
8
|
+
undef_method :log_to_stdout
|
7
9
|
def log_to_stdout
|
10
|
+
wrapped_app # touch the app so the logger is set up
|
11
|
+
|
8
12
|
SemanticLogger.add_appender(io: $stdout, formatter: :color)
|
9
13
|
end
|
10
14
|
end
|
@@ -40,7 +40,7 @@ module RailsSemanticLogger
|
|
40
40
|
# When Semantic Logger fails to log to an appender it logs the error to an
|
41
41
|
# internal logger, which by default writes to STDERR.
|
42
42
|
# Example, change the default internal logger to log to stdout:
|
43
|
-
# SemanticLogger::Processor.logger = SemanticLogger::Appender::
|
43
|
+
# SemanticLogger::Processor.logger = SemanticLogger::Appender::IO.new($stdout, level: :warn)
|
44
44
|
#
|
45
45
|
# config.rails_semantic_logger.add_file_appender = true
|
46
46
|
#
|
@@ -48,6 +48,10 @@ module RailsSemanticLogger
|
|
48
48
|
#
|
49
49
|
# config.rails_semantic_logger.quiet_assets = false
|
50
50
|
#
|
51
|
+
# * Disable automatic logging to stderr when running a Rails console.
|
52
|
+
#
|
53
|
+
# config.rails_semantic_logger.console_logger = false
|
54
|
+
#
|
51
55
|
# * Override the output format for the primary Rails log file.
|
52
56
|
#
|
53
57
|
# Valid options:
|
@@ -98,7 +102,7 @@ module RailsSemanticLogger
|
|
98
102
|
# config.rails_semantic_logger.named_tags = nil
|
99
103
|
class Options
|
100
104
|
attr_accessor :semantic, :started, :processing, :rendered, :ap_options, :add_file_appender,
|
101
|
-
:quiet_assets, :format, :named_tags, :filter
|
105
|
+
:quiet_assets, :format, :named_tags, :filter, :console_logger
|
102
106
|
|
103
107
|
# Setup default values
|
104
108
|
def initialize
|
@@ -112,6 +116,7 @@ module RailsSemanticLogger
|
|
112
116
|
@format = :default
|
113
117
|
@named_tags = nil
|
114
118
|
@filter = nil
|
119
|
+
@console_logger = true
|
115
120
|
end
|
116
121
|
end
|
117
122
|
end
|
@@ -52,3 +52,7 @@ module RailsSemanticLogger
|
|
52
52
|
|
53
53
|
private_class_method :subscriber_patterns, :unattach
|
54
54
|
end
|
55
|
+
|
56
|
+
require("rails_semantic_logger/extensions/mongoid/config") if defined?(Mongoid)
|
57
|
+
require("rails_semantic_logger/extensions/active_support/logger") if defined?(ActiveSupport::Logger)
|
58
|
+
require("rails_semantic_logger/extensions/rack/server") if defined?(Rack::Server)
|
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
|
+
version: 4.9.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: 2021-
|
11
|
+
date: 2021-12-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -30,28 +30,28 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '5.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: '
|
40
|
+
version: '5.1'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: semantic_logger
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '4.
|
47
|
+
version: '4.9'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '4.
|
54
|
+
version: '4.9'
|
55
55
|
description:
|
56
56
|
email:
|
57
57
|
executables: []
|
@@ -74,6 +74,10 @@ files:
|
|
74
74
|
- lib/rails_semantic_logger/extensions/action_view/streaming_template_renderer.rb
|
75
75
|
- lib/rails_semantic_logger/extensions/active_job/logging.rb
|
76
76
|
- lib/rails_semantic_logger/extensions/active_model_serializers/logging.rb
|
77
|
+
- lib/rails_semantic_logger/extensions/active_support/logger.rb
|
78
|
+
- lib/rails_semantic_logger/extensions/active_support/tagged_logging.rb
|
79
|
+
- lib/rails_semantic_logger/extensions/mongoid/config.rb
|
80
|
+
- lib/rails_semantic_logger/extensions/rack/server.rb
|
77
81
|
- lib/rails_semantic_logger/extensions/rails/server.rb
|
78
82
|
- lib/rails_semantic_logger/options.rb
|
79
83
|
- lib/rails_semantic_logger/rack/logger.rb
|
@@ -90,14 +94,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
90
94
|
requirements:
|
91
95
|
- - ">="
|
92
96
|
- !ruby/object:Gem::Version
|
93
|
-
version: '2.
|
97
|
+
version: '2.5'
|
94
98
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
95
99
|
requirements:
|
96
100
|
- - ">="
|
97
101
|
- !ruby/object:Gem::Version
|
98
102
|
version: '0'
|
99
103
|
requirements: []
|
100
|
-
rubygems_version: 3.
|
104
|
+
rubygems_version: 3.0.9
|
101
105
|
signing_key:
|
102
106
|
specification_version: 4
|
103
107
|
summary: Feature rich logging framework that replaces the Rails logger.
|