rails_semantic_logger 4.5.1 → 4.6.1

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: bd55ff856fc246fa4fadefb8a1b82f0736ea61567fbed522697def5df5c89d29
4
- data.tar.gz: d98db67a99d334d7c11767bc38673d68f609cece4a646bc9c73b7285194a6e95
3
+ metadata.gz: '0816ddc6820dfc94fed6b737d023c2cfdc6e6df3019d34ff1e71c40a2a6ccb2f'
4
+ data.tar.gz: b0c7f329c6e1ecf72687617155d994b6c37ef731d5166e30b76543a41e825efb
5
5
  SHA512:
6
- metadata.gz: d245a7a4e849914597cbc15ec55f41ec5e8e6565c8e0836a5229b51f290582a5c5d7374e8834dc4aebcbc41f0332bdd062eeb4b998261bf24e172a7e0fa89e39
7
- data.tar.gz: 1e4de44480364eebb089eb723f3f5e361543e19384a9296189ac8d7455f541a095d15b6016516c6127efa03da9f90d17ad6c40612a7be842405a2aa602217009
6
+ metadata.gz: c42fadbc4b768c9f64f719e36cdf453bc80b88639fd8fe169704ae5b37375be8706b59d3ede6ef8a6eac090a0433be1fe514e90ea306f2f1288f026042e48b18
7
+ data.tar.gz: f16dec6c5a4336c0d0a0a2862891ec2117cbf103257a759e8611376725167476bc090c2444a7011df7b4c4e323583f2d5392dd498dea72e03f23f3555c45bde8
@@ -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
- logger.error ex
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.info msg, fmt.payload
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)
@@ -214,6 +214,15 @@ module RailsSemanticLogger
214
214
 
215
215
  # Re-open appenders after Spring has forked a process
216
216
  Spring.after_fork { |_job| ::SemanticLogger.reopen } if defined?(Spring.after_fork)
217
+
218
+ console do |_app|
219
+ # Don't use a background thread for logging
220
+ SemanticLogger.sync!
221
+ SemanticLogger.add_appender(io: STDERR, formatter: :color)
222
+
223
+ # Include method names on log entries in the console
224
+ SemanticLogger.backtrace_level = SemanticLogger.default_level
225
+ end
217
226
  end
218
227
  end
219
228
  end
@@ -2,6 +2,7 @@
2
2
  ActionController::Live
3
3
  module ActionController
4
4
  module Live
5
+ undef_method :log_error
5
6
  def log_error(exception)
6
7
  logger.fatal(exception)
7
8
  end
@@ -4,6 +4,7 @@ module ActionDispatch
4
4
  class DebugExceptions
5
5
  private
6
6
 
7
+ undef_method :log_error
7
8
  def log_error(_request, wrapper)
8
9
  ActiveSupport::Deprecation.silence do
9
10
  ActionController::Base.logger.fatal(wrapper.exception)
@@ -6,6 +6,7 @@ module ActionView
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
@@ -0,0 +1,8 @@
1
+ module ActiveSupport
2
+ module TaggedLogging
3
+ # Semantic Logger already does tagged logging
4
+ def self.new(logger)
5
+ logger
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,11 @@
1
+ require "mongoid/config"
2
+
3
+ module Mongoid
4
+ module Config
5
+ private
6
+
7
+ # Remove log overrides
8
+ def set_log_levels
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ module RailsSemanticLogger
2
+ module Rack
3
+ module Server
4
+ def daemonize_app
5
+ super
6
+ SemanticLogger.reopen
7
+ end
8
+ end
9
+ end
10
+ end
11
+
12
+ Rack::Server.prepend(RailsSemanticLogger::Rack::Server)
@@ -5,6 +5,8 @@ module Rails
5
5
  private
6
6
 
7
7
  def log_to_stdout
8
+ wrapped_app # touch the app so the logger is set up
9
+
8
10
  SemanticLogger.add_appender(io: $stdout, formatter: :color)
9
11
  end
10
12
  end
@@ -1,3 +1,3 @@
1
1
  module RailsSemanticLogger
2
- VERSION = "4.5.1".freeze
2
+ VERSION = "4.6.1".freeze
3
3
  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.5.1
4
+ version: 4.6.1
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-05-03 00:00:00.000000000 Z
11
+ date: 2021-08-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '4.4'
47
+ version: '4.8'
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.4'
54
+ version: '4.8'
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.3'
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.2.15
104
+ rubygems_version: 3.2.22
101
105
  signing_key:
102
106
  specification_version: 4
103
107
  summary: Feature rich logging framework that replaces the Rails logger.