debug_logging 3.1.7 → 3.1.9

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.
@@ -1,16 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "date"
4
+ require "time"
5
+
3
6
  module DebugLogging
4
7
  module ArgumentPrinter
5
8
  def debug_benchmark_to_s(tms:)
6
- "completed in #{format('%f', tms.real)}s (#{format('%f', tms.total)}s CPU)"
9
+ "completed in #{format("%f", tms.real)}s (#{format("%f", tms.total)}s CPU)"
7
10
  end
8
11
 
9
12
  def debug_invocation_id_to_s(args: nil, config_proxy: nil)
10
- return '' unless args && config_proxy
13
+ return "" unless args && config_proxy
11
14
 
12
15
  if config_proxy.debug_add_invocation_id
13
- invocation = " ~#{args.object_id}@#{(Time.now.to_f.to_s % '%#-21a')[4..-4]}~"
16
+ invocation = " ~#{args.object_id}@#{(Time.now.to_f.to_s % "%#-21a")[4..-4]}~"
14
17
  case config_proxy.debug_add_invocation_id
15
18
  when true
16
19
  invocation
@@ -18,30 +21,47 @@ module DebugLogging
18
21
  config_proxy.debug_add_invocation_id.call(ColorizedString[invocation])
19
22
  end
20
23
  else
21
- ''
24
+ ""
25
+ end
26
+ end
27
+
28
+ def debug_time_to_s(time_or_monotonic)
29
+ # Time format must match:
30
+ # \d{4,}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} [-+]\d{4}
31
+ # YYYY-MM-DD HH:mm:ss +00:00
32
+ # strftime("%F %T %z")
33
+ case time_or_monotonic
34
+ when Float
35
+ Time.at(time_or_monotonic).strftime("%F %T %z")
36
+ when Time, DateTime
37
+ time_or_monotonic.strftime("%F %T %z")
38
+ when String
39
+ Time.parse(time_or_monotonic).strftime("%F %T %z")
40
+ else
41
+ time_or_monotonic
22
42
  end
23
43
  end
24
44
 
25
45
  def debug_invocation_to_s(klass: nil, separator: nil, method_to_log: nil, config_proxy: nil)
26
- return '' unless config_proxy
46
+ return "" unless config_proxy
27
47
 
28
48
  klass_string = if config_proxy.debug_colorized_chain_for_class
29
- config_proxy.debug_colorized_chain_for_class.call(ColorizedString[klass.to_s])
30
- else
31
- klass.to_s
32
- end
49
+ config_proxy.debug_colorized_chain_for_class.call(ColorizedString[klass.to_s])
50
+ else
51
+ klass.to_s
52
+ end
33
53
  method_string = if config_proxy.debug_colorized_chain_for_method
34
- config_proxy.debug_colorized_chain_for_method.call(ColorizedString[method_to_log.to_s])
35
- else
36
- method_to_log.to_s
37
- end
54
+ config_proxy.debug_colorized_chain_for_method.call(ColorizedString[method_to_log.to_s])
55
+ else
56
+ method_to_log.to_s
57
+ end
38
58
  "#{klass_string}#{separator}#{method_string}"
39
59
  end
40
60
 
41
61
  def debug_signature_to_s(args: nil, config_proxy: nil) # rubocop:disable Metrics/CyclomaticComplexity
42
- return '' unless args && config_proxy
62
+ return "" unless args && config_proxy
43
63
 
44
- printed_args = ''
64
+ printed_args = ""
45
65
 
46
66
  add_args_ellipsis = false
47
67
  if config_proxy.debug_last_hash_to_s_proc && args[-1].is_a?(Hash)
@@ -52,18 +72,18 @@ module DebugLogging
52
72
  arg.is_a?(Hash)
53
73
  end
54
74
  other_args_string = if config_proxy.debug_args_to_s_proc
55
- printed, add_other_args_ellipsis = debug_safe_proc(
56
- proc_name:'args_to_s_proc',
57
- proc: config_proxy.debug_args_to_s_proc,
58
- args: other_args,
59
- max_length: config_proxy.debug_args_max_length
60
- )
61
- printed
62
- else
63
- other_args.map(&:inspect).join(', ').tap do |x|
64
- add_other_args_ellipsis = x.length > config_proxy.debug_args_max_length
65
- end[0..(config_proxy.debug_args_max_length)]
66
- end
75
+ printed, add_other_args_ellipsis = debug_safe_proc(
76
+ proc_name: "args_to_s_proc",
77
+ proc: config_proxy.debug_args_to_s_proc,
78
+ args: other_args,
79
+ max_length: config_proxy.debug_args_max_length,
80
+ )
81
+ printed
82
+ else
83
+ other_args.map(&:inspect).join(", ").tap do |x|
84
+ add_other_args_ellipsis = x.length > config_proxy.debug_args_max_length
85
+ end[0..(config_proxy.debug_args_max_length)]
86
+ end
67
87
  other_args_string += config_proxy.debug_ellipsis if add_other_args_ellipsis
68
88
  # On the debug_multiple_last_hashes truthy branch we don't print the ellipsis after regular args
69
89
  # because it will go instead after each of the last hashes (if needed)
@@ -71,73 +91,73 @@ module DebugLogging
71
91
  last_hash_args_string = last_hash_args.map do |arg|
72
92
  arr = []
73
93
  printed, add_last_hash_ellipsis = debug_safe_proc(
74
- proc_name:'last_hash_to_s_proc',
94
+ proc_name: "last_hash_to_s_proc",
75
95
  proc: config_proxy.debug_last_hash_to_s_proc,
76
96
  args: arg,
77
- max_length: config_proxy.debug_last_hash_max_length
97
+ max_length: config_proxy.debug_last_hash_max_length,
78
98
  )
79
99
  printed += config_proxy.debug_ellipsis if add_last_hash_ellipsis
80
100
  arr << printed
81
101
  arr
82
- end.flatten.join(', ')
102
+ end.flatten.join(", ")
83
103
  printed_args += other_args_string if other_args_string
84
- printed_args += ', ' if !other_args_string.empty? && !last_hash_args_string.empty?
104
+ printed_args += ", " if !other_args_string.empty? && !last_hash_args_string.empty?
85
105
  printed_args += last_hash_args_string if last_hash_args_string && !last_hash_args_string.empty?
86
106
  else
87
107
  other_args = args[0..-2]
88
108
  other_args_string = if config_proxy.debug_args_to_s_proc
89
- printed, add_other_args_ellipsis = debug_safe_proc(
90
- proc_name:'args_to_s_proc',
91
- proc: config_proxy.debug_args_to_s_proc,
92
- args: other_args,
93
- max_length: config_proxy.debug_args_max_length
94
- )
95
- printed
96
- else
97
- other_args.map(&:inspect).join(', ').tap do |x|
98
- add_other_args_ellipsis = x.length > config_proxy.debug_args_max_length
99
- end[0..(config_proxy.debug_args_max_length)]
100
- end
109
+ printed, add_other_args_ellipsis = debug_safe_proc(
110
+ proc_name: "args_to_s_proc",
111
+ proc: config_proxy.debug_args_to_s_proc,
112
+ args: other_args,
113
+ max_length: config_proxy.debug_args_max_length,
114
+ )
115
+ printed
116
+ else
117
+ other_args.map(&:inspect).join(", ").tap do |x|
118
+ add_other_args_ellipsis = x.length > config_proxy.debug_args_max_length
119
+ end[0..(config_proxy.debug_args_max_length)]
120
+ end
101
121
  other_args_string += config_proxy.debug_ellipsis if add_other_args_ellipsis
102
122
  printed_args += other_args_string
103
123
  printed, add_last_hash_ellipsis = debug_safe_proc(
104
- proc_name:'last_hash_to_s_proc',
124
+ proc_name: "last_hash_to_s_proc",
105
125
  proc: config_proxy.debug_last_hash_to_s_proc,
106
126
  args: args[-1],
107
- max_length: config_proxy.debug_last_hash_max_length
127
+ max_length: config_proxy.debug_last_hash_max_length,
108
128
  )
109
129
  printed_args += ", #{printed}"
110
130
  printed_args += config_proxy.debug_ellipsis if add_last_hash_ellipsis
111
131
  end
112
132
  else
113
133
  printed, add_last_hash_ellipsis = debug_safe_proc(
114
- proc_name:'last_hash_to_s_proc',
134
+ proc_name: "last_hash_to_s_proc",
115
135
  proc: config_proxy.debug_last_hash_to_s_proc,
116
136
  args: args[0],
117
- max_length: config_proxy.debug_last_hash_max_length
137
+ max_length: config_proxy.debug_last_hash_max_length,
118
138
  )
119
139
  printed_args += printed
120
140
  printed_args += config_proxy.debug_ellipsis if add_last_hash_ellipsis
121
141
  end
122
142
  else
123
143
  printed_args += if config_proxy.debug_args_to_s_proc
124
- printed, add_args_ellipsis = debug_safe_proc(
125
- proc_name:'args_to_s_proc',
126
- proc: config_proxy.debug_args_to_s_proc,
127
- args: args,
128
- max_length: config_proxy.debug_args_max_length
129
- )
130
- printed
131
- elsif args.length == 1 && args[0].is_a?(Hash)
132
- # handle double splat
133
- ("**#{args.map(&:inspect).join(', ').tap do |x|
134
- add_args_ellipsis = x.length > config_proxy.debug_args_max_length
135
- end }")[0..(config_proxy.debug_args_max_length)]
136
- else
137
- args.map(&:inspect).join(', ').tap do |x|
138
- add_args_ellipsis = x.length > config_proxy.debug_args_max_length
139
- end[0..(config_proxy.debug_args_max_length)]
140
- end
144
+ printed, add_args_ellipsis = debug_safe_proc(
145
+ proc_name: "args_to_s_proc",
146
+ proc: config_proxy.debug_args_to_s_proc,
147
+ args: args,
148
+ max_length: config_proxy.debug_args_max_length,
149
+ )
150
+ printed
151
+ elsif args.length == 1 && args[0].is_a?(Hash)
152
+ # handle double splat
153
+ "**#{args.map(&:inspect).join(", ").tap do |x|
154
+ add_args_ellipsis = x.length > config_proxy.debug_args_max_length
155
+ end }"[0..(config_proxy.debug_args_max_length)]
156
+ else
157
+ args.map(&:inspect).join(", ").tap do |x|
158
+ add_args_ellipsis = x.length > config_proxy.debug_args_max_length
159
+ end[0..(config_proxy.debug_args_max_length)]
160
+ end
141
161
  printed_args += config_proxy.debug_ellipsis if add_args_ellipsis
142
162
  end
143
163
  "(#{printed_args})"
@@ -149,34 +169,30 @@ module DebugLogging
149
169
  add_ellipsis = false
150
170
  printed = String(proc.call(args)).tap do |x|
151
171
  add_ellipsis = x.length > max_length
152
- end[0..(max_length)]
153
- return printed, add_ellipsis
154
- rescue => e
155
- return "#{e.class}: #{e.message}\nPlease check that your #{proc_name} is able to handle #{args}", false
172
+ end[0..max_length]
173
+ [printed, add_ellipsis]
174
+ rescue StandardError => e
175
+ ["#{e.class}: #{e.message}\nPlease check that your #{proc_name} is able to handle #{args}", false]
156
176
  end
157
177
  end
158
178
 
159
179
  def debug_payload_to_s(payload: nil, config_proxy: nil)
160
- return '' unless payload && config_proxy
180
+ return "" unless payload && config_proxy
161
181
 
162
- if payload
163
- case config_proxy.debug_add_payload
164
- when true
165
- payload.inspect
166
- else
167
- printed_payload = ""
168
- printed, add_payload_ellipsis = debug_safe_proc(
169
- proc_name: "add_payload",
170
- proc: config_proxy.debug_add_payload,
171
- args: payload,
172
- max_length: config_proxy.payload_max_length
173
- )
174
- printed_payload += printed
175
- printed_payload += config_proxy.debug_ellipsis if add_payload_ellipsis
176
- printed_payload
177
- end
182
+ case config_proxy.debug_add_payload
183
+ when true
184
+ payload.inspect
178
185
  else
179
- ''
186
+ printed_payload = ""
187
+ printed, add_payload_ellipsis = debug_safe_proc(
188
+ proc_name: "add_payload",
189
+ proc: config_proxy.debug_add_payload,
190
+ args: payload,
191
+ max_length: config_proxy.payload_max_length,
192
+ )
193
+ printed_payload += printed
194
+ printed_payload += config_proxy.debug_ellipsis if add_payload_ellipsis
195
+ printed_payload
180
196
  end
181
197
  end
182
198
 
@@ -6,13 +6,13 @@ module DebugLogging
6
6
  methods_to_log, payload, config_opts = DebugLogging::Util.extract_payload_and_config(
7
7
  method_names: methods_to_log,
8
8
  payload: nil,
9
- config: nil
9
+ config: nil,
10
10
  )
11
11
  Array(methods_to_log).each do |method_to_log|
12
12
  method_to_log, method_payload, method_config_opts = DebugLogging::Util.extract_payload_and_config(
13
13
  method_names: method_to_log,
14
14
  payload: payload,
15
- config: config_opts
15
+ config: config_opts,
16
16
  )
17
17
  original_method = method(method_to_log)
18
18
  (class << self; self; end).class_eval do
@@ -21,16 +21,20 @@ module DebugLogging
21
21
  scope: self,
22
22
  config_opts: method_config_opts,
23
23
  method_name: method_to_log,
24
- proxy_ref: 'kl'
24
+ proxy_ref: "kl",
25
25
  )
26
26
  method_return_value = nil
27
27
  log_prefix = nil
28
28
  invocation_id = nil
29
29
  begin
30
30
  config_proxy.log do
31
- paydirt = DebugLogging::Util.payload_instance_vaiable_hydration(scope: self, payload: method_payload)
32
- log_prefix = debug_invocation_to_s(klass: to_s, separator: '.', method_to_log: method_to_log,
33
- config_proxy: config_proxy)
31
+ paydirt = DebugLogging::Util.payload_instance_variable_hydration(scope: self, payload: method_payload)
32
+ log_prefix = debug_invocation_to_s(
33
+ klass: to_s,
34
+ separator: ".",
35
+ method_to_log: method_to_log,
36
+ config_proxy: config_proxy,
37
+ )
34
38
  invocation_id = debug_invocation_id_to_s(args: args, config_proxy: config_proxy)
35
39
  signature = debug_signature_to_s(args: args, config_proxy: config_proxy)
36
40
  paymud = debug_payload_to_s(payload: paydirt, config_proxy: config_proxy)
@@ -39,20 +43,20 @@ module DebugLogging
39
43
  if config_proxy.benchmarkable_for?(:debug_class_benchmarks)
40
44
  tms = Benchmark.measure do
41
45
  method_return_value = if args.size == 1 && (harsh = args[0]) && harsh.is_a?(Hash)
42
- original_method.call(**harsh, &block)
43
- else
44
- original_method.call(*args, &block)
45
- end
46
+ original_method.call(**harsh, &block)
47
+ else
48
+ original_method.call(*args, &block)
49
+ end
46
50
  end
47
51
  config_proxy.log do
48
52
  "#{log_prefix} #{debug_benchmark_to_s(tms: tms)}#{invocation_id}"
49
53
  end
50
54
  else
51
55
  method_return_value = if args.size == 1 && (harsh = args[0]) && harsh.is_a?(Hash)
52
- original_method.call(**harsh, &block)
53
- else
54
- original_method.call(*args, &block)
55
- end
56
+ original_method.call(**harsh, &block)
57
+ else
58
+ original_method.call(*args, &block)
59
+ end
56
60
  if config_proxy.exit_scope_markable? && invocation_id && !invocation_id.empty?
57
61
  config_proxy.log do
58
62
  "#{log_prefix} completed#{invocation_id}"
@@ -60,11 +64,11 @@ module DebugLogging
60
64
  end
61
65
  end
62
66
  method_return_value
63
- rescue => error
67
+ rescue StandardError => e
64
68
  if config_proxy.error_handler_proc
65
- config_proxy.error_handler_proc.call(config_proxy, error, self)
69
+ config_proxy.error_handler_proc.call(config_proxy, e, self, method_to_log, args)
66
70
  else
67
- raise error
71
+ raise e
68
72
  end
69
73
  end
70
74
  end
@@ -6,13 +6,13 @@ module DebugLogging
6
6
  methods_to_notify, payload, config_opts = DebugLogging::Util.extract_payload_and_config(
7
7
  method_names: methods_to_notify,
8
8
  payload: nil,
9
- config: nil
9
+ config: nil,
10
10
  )
11
11
  Array(methods_to_notify).each do |method_to_notify|
12
12
  method_to_notify, method_payload, method_config_opts = DebugLogging::Util.extract_payload_and_config(
13
13
  method_names: method_to_notify,
14
14
  payload: payload,
15
- config: config_opts
15
+ config: config_opts,
16
16
  )
17
17
  original_method = method(method_to_notify)
18
18
  (class << self; self; end).class_eval do
@@ -21,24 +21,24 @@ module DebugLogging
21
21
  scope: self,
22
22
  config_opts: method_config_opts,
23
23
  method_name: method_to_notify,
24
- proxy_ref: 'kn'
24
+ proxy_ref: "kn",
25
25
  ) do |proxy|
26
26
  ActiveSupport::Notifications.subscribe(
27
- DebugLogging::ArgumentPrinter.debug_event_name_to_s(method_to_notify: method_to_notify)
27
+ DebugLogging::ArgumentPrinter.debug_event_name_to_s(method_to_notify: method_to_notify),
28
28
  ) do |*debug_args|
29
29
  proxy.log do
30
30
  DebugLogging::LogSubscriber.log_event(ActiveSupport::Notifications::Event.new(*debug_args))
31
31
  end
32
32
  end
33
33
  end
34
- paydirt = DebugLogging::Util.payload_instance_vaiable_hydration(scope: self, payload: method_payload)
34
+ paydirt = DebugLogging::Util.payload_instance_variable_hydration(scope: self, payload: method_payload)
35
35
  ActiveSupport::Notifications.instrument(
36
36
  DebugLogging::ArgumentPrinter.debug_event_name_to_s(method_to_notify: method_to_notify),
37
37
  {
38
38
  debug_args: args,
39
39
  config_proxy: config_proxy,
40
- **paydirt
41
- }
40
+ **paydirt,
41
+ },
42
42
  ) do
43
43
  begin
44
44
  if args.size == 1 && (harsh = args[0]) && harsh.is_a?(Hash)
@@ -46,11 +46,11 @@ module DebugLogging
46
46
  else
47
47
  original_method.call(*args, &block)
48
48
  end
49
- rescue => error
49
+ rescue StandardError => e
50
50
  if config_proxy.error_handler_proc
51
- config_proxy.error_handler_proc.call(config_proxy, error, self)
51
+ config_proxy.error_handler_proc.call(config_proxy, e, self, method_to_notify, args)
52
52
  else
53
- raise error
53
+ raise e
54
54
  end
55
55
  end
56
56
  end
@@ -18,7 +18,7 @@ module DebugLogging
18
18
  # log_level: :debug # at what level do the messages created by this gem sent at?
19
19
  # last_hash_to_s_proc: nil # e.g. ->(hash) { "keys: #{hash.keys}" }
20
20
  # last_hash_max_length: 1_000
21
- # args_to_s_proc: nil # e.g. ->(record) { "record id: #{record.id}" }
21
+ # args_to_s_proc: nil # e.g. ->(*record) { "record id: #{record.first.id}" }
22
22
  # args_max_length: 1_000
23
23
  # instance_benchmarks: false
24
24
  # class_benchmarks: false
@@ -79,17 +79,17 @@ module DebugLogging
79
79
  end
80
80
 
81
81
  def instance_benchmarks=(instance_benchmarks)
82
- require 'benchmark' if instance_benchmarks
82
+ require "benchmark" if instance_benchmarks
83
83
  @instance_benchmarks = instance_benchmarks
84
84
  end
85
85
 
86
86
  def class_benchmarks=(class_benchmarks)
87
- require 'benchmark' if class_benchmarks
87
+ require "benchmark" if class_benchmarks
88
88
  @class_benchmarks = class_benchmarks
89
89
  end
90
90
 
91
91
  def active_support_notifications=(active_support_notifications)
92
- require 'debug_logging/active_support_notifications' if active_support_notifications
92
+ require "debug_logging/active_support_notifications" if active_support_notifications
93
93
  @active_support_notifications = active_support_notifications
94
94
  end
95
95
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  module DebugLogging
4
4
  module Constants
5
- DEFAULT_ELLIPSIS = ' ✂️ …'
5
+ DEFAULT_ELLIPSIS = " ✂️ …"
6
6
  CONFIG_ATTRS_DEFAULTS = {
7
7
  enabled: true,
8
8
  logger: Logger.new($stdout),
@@ -19,13 +19,13 @@ module DebugLogging
19
19
  mark_scope_exit: false,
20
20
  add_payload: true, # Can also be a proc returning a string, which will be called when printing the payload
21
21
  payload_max_length: 1_000,
22
- error_handler_proc: nil
22
+ error_handler_proc: nil,
23
23
  }.freeze
24
24
  CONFIG_ATTRS = CONFIG_ATTRS_DEFAULTS.keys
25
25
  CONFIG_READERS_DEFAULTS = {
26
26
  instance_benchmarks: false,
27
27
  class_benchmarks: false,
28
- active_support_notifications: false
28
+ active_support_notifications: false,
29
29
  }.freeze
30
30
  CONFIG_READERS = CONFIG_READERS_DEFAULTS.keys
31
31
  CONFIG_KEYS = CONFIG_ATTRS + CONFIG_READERS
@@ -10,7 +10,7 @@ module DebugLogging
10
10
  if obj.respond_to?(:debug_finalize)
11
11
  obj.debug_finalize
12
12
  else
13
- warn "#{obj} does not define a debug_finalize"
13
+ warn("#{obj} does not define a debug_finalize")
14
14
  end
15
15
  t.disable
16
16
  end
@@ -1,5 +1,5 @@
1
- require 'debug_logging/errors'
2
- require 'timeout'
1
+ require "debug_logging/errors"
2
+ require "timeout"
3
3
 
4
4
  module DebugLogging
5
5
  module Hooks
@@ -21,7 +21,7 @@ module DebugLogging
21
21
  meth.bind(self).call(*args, &block)
22
22
  end
23
23
  rescue Timeout::Error
24
- error_args = [TimeoutError, 'execution expired', caller]
24
+ error_args = [TimeoutError, "execution expired", caller]
25
25
  raise(*error_args) unless blk
26
26
 
27
27
  instance_exec(*error_args, &blk)
@@ -33,8 +33,8 @@ module DebugLogging
33
33
  def debug_rescue_on_fail(*names, &blk)
34
34
  unless blk
35
35
  raise NoBlockGiven,
36
- '.rescue_on_fail must be called with a block',
37
- caller
36
+ ".rescue_on_fail must be called with a block",
37
+ caller
38
38
  end
39
39
  names.each do |name|
40
40
  meth = instance_method(name)
@@ -51,12 +51,12 @@ module DebugLogging
51
51
  def debug_before(*names, &blk)
52
52
  unless blk
53
53
  raise NoBlockGiven,
54
- '.before must be called with a block',
55
- caller
54
+ ".before must be called with a block",
55
+ caller
56
56
  end
57
57
  names.each do |name|
58
58
  meth = instance_method(name)
59
- define_method name do |*args, &block|
59
+ define_method(name) do |*args, &block|
60
60
  instance_exec(name, *args, block, &blk)
61
61
  meth.bind(self).call(*args, &block)
62
62
  end
@@ -66,12 +66,12 @@ module DebugLogging
66
66
  def debug_after(*names, &blk)
67
67
  unless blk
68
68
  raise NoBlockGiven,
69
- '.after must be called with a block',
70
- caller
69
+ ".after must be called with a block",
70
+ caller
71
71
  end
72
72
  names.each do |name|
73
73
  meth = instance_method(name)
74
- define_method name do |*args, &block|
74
+ define_method(name) do |*args, &block|
75
75
  result = meth.bind(self).call(*args, &block)
76
76
  instance_exec(result, &blk)
77
77
  end
@@ -13,9 +13,11 @@ module DebugLogging
13
13
  return unless @instance_methods_to_log
14
14
 
15
15
  base.send(:include, ArgumentPrinter)
16
- instance_method_logger = DebugLogging::InstanceLoggerModulizer.to_mod(methods_to_log: @instance_methods_to_log,
17
- payload: @payload,
18
- config: @config)
16
+ instance_method_logger = DebugLogging::InstanceLoggerModulizer.to_mod(
17
+ methods_to_log: @instance_methods_to_log,
18
+ payload: @payload,
19
+ config: @config,
20
+ )
19
21
  base.send(:prepend, instance_method_logger)
20
22
  end
21
23
  end
@@ -7,13 +7,13 @@ module DebugLogging
7
7
  methods_to_log, payload, config_opts = DebugLogging::Util.extract_payload_and_config(
8
8
  method_names: Array(methods_to_log),
9
9
  payload: payload,
10
- config: config
10
+ config: config,
11
11
  )
12
12
  Array(methods_to_log).each do |method_to_log|
13
13
  method_to_log, method_payload, method_config_opts = DebugLogging::Util.extract_payload_and_config(
14
14
  method_names: method_to_log,
15
15
  payload: payload,
16
- config: config_opts
16
+ config: config_opts,
17
17
  )
18
18
  define_method(method_to_log) do |*args, &block|
19
19
  method_return_value = nil
@@ -21,13 +21,17 @@ module DebugLogging
21
21
  scope: self.class,
22
22
  config_opts: method_config_opts,
23
23
  method_name: method_to_log,
24
- proxy_ref: 'ilm'
24
+ proxy_ref: "ilm",
25
+ )
26
+ log_prefix = self.class.debug_invocation_to_s(
27
+ klass: self.class.to_s,
28
+ separator: "#",
29
+ method_to_log: method_to_log,
30
+ config_proxy: config_proxy,
25
31
  )
26
- log_prefix = self.class.debug_invocation_to_s(klass: self.class.to_s, separator: '#',
27
- method_to_log: method_to_log, config_proxy: config_proxy)
28
32
  invocation_id = self.class.debug_invocation_id_to_s(args: args, config_proxy: config_proxy)
29
33
  config_proxy.log do
30
- paydirt = DebugLogging::Util.payload_instance_vaiable_hydration(scope: self, payload: method_payload)
34
+ paydirt = DebugLogging::Util.payload_instance_variable_hydration(scope: self, payload: method_payload)
31
35
  signature = self.class.debug_signature_to_s(args: args, config_proxy: config_proxy)
32
36
  paymud = debug_payload_to_s(payload: paydirt, config_proxy: config_proxy)
33
37
  "#{log_prefix}#{signature}#{invocation_id} debug: #{paymud}"
@@ -42,11 +46,11 @@ module DebugLogging
42
46
  else
43
47
  begin
44
48
  method_return_value = super(*args, &block)
45
- rescue => error
49
+ rescue StandardError => e
46
50
  if config_proxy.error_handler_proc
47
- config_proxy.error_handler_proc.call(config_proxy, error, self)
51
+ config_proxy.error_handler_proc.call(config_proxy, e, self, method_to_log, args)
48
52
  else
49
- raise error
53
+ raise e
50
54
  end
51
55
  end
52
56
  if config_proxy.exit_scope_markable? && invocation_id && !invocation_id.empty?
@@ -13,9 +13,11 @@ module DebugLogging
13
13
  return unless @instance_methods_to_notify
14
14
 
15
15
  base.send(:include, ArgumentPrinter)
16
- instance_method_notifier = DebugLogging::InstanceNotifierModulizer.to_mod(methods_to_notify: @instance_methods_to_notify,
17
- payload: @payload,
18
- config: @config)
16
+ instance_method_notifier = DebugLogging::InstanceNotifierModulizer.to_mod(
17
+ methods_to_notify: @instance_methods_to_notify,
18
+ payload: @payload,
19
+ config: @config,
20
+ )
19
21
  base.send(:prepend, instance_method_notifier)
20
22
  end
21
23
  end