Module: Legion::Service

Defined in:
lib/legion/service.rb

Class Method Summary collapse

Class Method Details

.register_logging_hooksObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/legion/service.rb', line 5

def self.register_logging_hooks
  return unless defined?(Legion::Logging::Hooks)
  return unless defined?(Legion::Transport)

  Legion::Logging::Hooks.on_warn do |message, event|
    Legion::Transport::Exchanges::Logging.publish(event.merge(level: :warn, message: message))
  rescue StandardError => e
    Kernel.warn("register_logging_hooks on_warn publish failed: #{e.message}")
  end

  Legion::Logging::Hooks.on_error do |message, event|
    Legion::Transport::Exchanges::Logging.publish(event.merge(level: :error, message: message))
  rescue StandardError => e
    Kernel.warn("register_logging_hooks on_error publish failed: #{e.message}")
  end

  Legion::Logging::Hooks.on_fatal do |message, event|
    Legion::Transport::Exchanges::Logging.publish(event.merge(level: :fatal, message: message))
  rescue StandardError => e
    Kernel.warn("register_logging_hooks on_fatal publish failed: #{e.message}")
  end
end