Class: Banter::RabbitLogger

Inherits:
Object
  • Object
show all
Defined in:
lib/banter/rabbit_logger.rb

Constant Summary collapse

@@log_map =
[:debug, :info, :warn, :error, :fatal]

Class Method Summary collapse

Class Method Details

.enabled?Boolean

Returns:

  • (Boolean)


7
8
9
10
# File 'lib/banter/rabbit_logger.rb', line 7

def self.enabled?
  true
  # Banter::Configuration.logging_enabled
end

.failed_publish(routing_key, properties, envelope) ⇒ Object



16
17
18
# File 'lib/banter/rabbit_logger.rb', line 16

def self.failed_publish(routing_key, properties, envelope)
  internal_log(:error, "BANTER FAILED_SEND", envelope, routing_key, { properties: properties, payload:envelope[:payload] })
end

.internal_log(log_level, log_type, envelope, routing_key, payload) ⇒ Object



50
51
52
53
54
# File 'lib/banter/rabbit_logger.rb', line 50

def self.internal_log(log_level, log_type, envelope, routing_key, payload)
  return unless enabled?
  tags = [log_type, envelope[:ts].to_s, envelope[:pub], envelope[:v].to_s, routing_key].compact.map{|x| utf(x)}
  logger.tagged(tags) { logger.send(log_level, utf(payload.to_s)) }
end

.log(log_level, message) ⇒ Object



45
46
47
48
# File 'lib/banter/rabbit_logger.rb', line 45

def self.log(log_level, message)
  tags = ["BANTER LOG_LEVEL:#{@@log_map[log_level].capitalize.to_s}", Process::pid.to_s].map{|x| utf(x)}
  logger.tagged(tags) { logger.send(@@log_map[log_level], utf(message.as_json.to_s) ) }
end

.log_complete(routing_key, envelope) ⇒ Object



24
25
26
# File 'lib/banter/rabbit_logger.rb', line 24

def self.log_complete(routing_key, envelope)
  internal_log(:warn, "BANTER COMPLETED", envelope, routing_key, envelope[:payload])
end

.log_publish(routing_key, envelope) ⇒ Object



12
13
14
# File 'lib/banter/rabbit_logger.rb', line 12

def self.log_publish(routing_key, envelope)
  internal_log(:warn, "BANTER PUBLISH", envelope, routing_key, envelope[:payload])
end

.log_receive(routing_key, envelope) ⇒ Object



20
21
22
# File 'lib/banter/rabbit_logger.rb', line 20

def self.log_receive(routing_key, envelope)
  internal_log(:warn, "BANTER RECEIVED", envelope, routing_key, envelope[:payload])
end

.log_service(service_name, message) ⇒ Object



39
40
41
42
43
# File 'lib/banter/rabbit_logger.rb', line 39

def self.log_service(service_name, message)
  return unless enabled?
  tags = ["BANTER SERVICE", service_name, Process::pid]
  logger.tagged(tags) { logger.info message.as_json}
end

.log_subscriber_failed(routing_key, delivery_info, properties, envelope, contents) ⇒ Object



28
29
30
31
32
33
34
35
36
37
# File 'lib/banter/rabbit_logger.rb', line 28

def self.log_subscriber_failed(routing_key, delivery_info, properties, envelope, contents)
  if envelope.nil?
    # message could not be parsed, so we have to log this one differently.
    tags = ["BANTER SUBSCRIBER FAILED", Time.now.to_i.to_s, routing_key].map{|x| utf(x)}
    logger.tagged(tags) { logger.send(:error, utf( "contents: #{contents.to_s} -- properties: #{properties.to_s}")) }
  else
    internal_log(:warn, "BANTER SUBSCRIBER FAILED", envelope, routing_key,  { delivery_info: delivery_info, properties: properties,
      contents: envelope[:payload] } )
  end
end

.loggerObject



56
57
58
# File 'lib/banter/rabbit_logger.rb', line 56

def self.logger
  Banter.logger
end

.utf(field) ⇒ Object



60
61
62
# File 'lib/banter/rabbit_logger.rb', line 60

def self.utf(field)
  field.force_encoding('utf-8')
end