rails_semantic_logger 4.5.1 → 4.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bd55ff856fc246fa4fadefb8a1b82f0736ea61567fbed522697def5df5c89d29
4
- data.tar.gz: d98db67a99d334d7c11767bc38673d68f609cece4a646bc9c73b7285194a6e95
3
+ metadata.gz: 453828593f931f4f57c75337f47ae552a77be8597ef49bb838a4c4fa032f04a7
4
+ data.tar.gz: 1a1d9354c9368fb9e14703a422e08b9f5274734b281789d220df793af678ae8b
5
5
  SHA512:
6
- metadata.gz: d245a7a4e849914597cbc15ec55f41ec5e8e6565c8e0836a5229b51f290582a5c5d7374e8834dc4aebcbc41f0332bdd062eeb4b998261bf24e172a7e0fa89e39
7
- data.tar.gz: 1e4de44480364eebb089eb723f3f5e361543e19384a9296189ac8d7455f541a095d15b6016516c6127efa03da9f90d17ad6c40612a7be842405a2aa602217009
6
+ metadata.gz: 69d52f1889d27b459313785c5e98f88e90d8b5367d6c5cca1e10d82d4e7a171095b9cfeae0ceae63b7faaf826e2ef71df36bbc213c7c592a9ceabef75b06e6c8
7
+ data.tar.gz: a216178a0be935a7c15710d0921fdee562bbe0c46bb5bbd5f2cb5250ad097acdb6142dfd1ec68fe7524afff59d4fc44d2b48d8ea3ad3190f54f539582c65af5f
@@ -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)
@@ -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
@@ -0,0 +1,20 @@
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
+ # Prevent Console from trying to merge loggers
7
+ def self.logger_outputs_to?(*args)
8
+ true
9
+ end
10
+
11
+ # Prevent broadcasting since SemanticLogger already supports multiple loggers
12
+ def self.broadcast(logger)
13
+ Module.new
14
+ end
15
+
16
+ def self.new(*args, **kwargs)
17
+ SemanticLogger[self]
18
+ end
19
+ end
20
+ 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.0".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.5.1
4
+ version: 4.6.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-05-03 00:00:00.000000000 Z
11
+ date: 2021-06-17 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,7 +94,7 @@ 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
  - - ">="