@@ -8,38 +8,28 @@ class Host
88 # It stores logger and handles log events.
99 class LoggerRegistry
1010 def initialize ( logger )
11- logger = Struct . from_hash ( logger , methods : %i[ debug warn ] )
12-
13- { debug : DebugContext , warn : WarnContext } . each do |symbol , context_class |
14- next unless logger . respond_to? ( symbol )
15-
16- define_singleton_method ( symbol ) do |event |
17- logger . public_send ( symbol , event . message , context_class . new ( event ) )
18- end
19- end
11+ @logger = Struct . from_hash ( logger , methods : %i[ debug warn ] )
2012 end
2113
2214 def log ( event )
2315 case event . type
2416 when :DEBUG
25- debug ( event )
17+ if @logger . respond_to? ( :debug )
18+ @logger . debug ( event . message , DebugContext . new ( event ) )
19+ else
20+ Kernel . warn ( event . formatted )
21+ end
2622 when :DEPRECATION_WARNING , :WARNING
27- warn ( event )
23+ if @logger . respond_to? ( :warn )
24+ @logger . warn ( event . message , WarnContext . new ( event ) )
25+ else
26+ Kernel . warn ( event . formatted )
27+ end
2828 else
2929 raise ArgumentError , "Unknown LogEvent.type #{ event . type } "
3030 end
3131 end
3232
33- private
34-
35- def debug ( event )
36- Kernel . warn ( event . formatted )
37- end
38-
39- def warn ( event )
40- Kernel . warn ( event . formatted )
41- end
42-
4333 # Contextual information passed to `debug`.
4434 class DebugContext
4535 # @return [Logger::SourceSpan, nil]
0 commit comments