Class: Banter::RabbitLogger
- Inherits:
-
Object
- Object
- Banter::RabbitLogger
- Defined in:
- lib/banter/rabbit_logger.rb
Constant Summary collapse
- @@log_map =
[:debug, :info, :warn, :error, :fatal]
Class Method Summary collapse
- .enabled? ⇒ Boolean
- .failed_publish(routing_key, properties, envelope) ⇒ Object
- .internal_log(log_level, log_type, envelope, routing_key, payload) ⇒ Object
- .log(log_level, message) ⇒ Object
- .log_complete(routing_key, envelope) ⇒ Object
- .log_publish(routing_key, envelope) ⇒ Object
- .log_receive(routing_key, envelope) ⇒ Object
- .log_service(service_name, message) ⇒ Object
- .log_subscriber_failed(routing_key, delivery_info, properties, envelope, contents) ⇒ Object
- .logger ⇒ Object
- .utf(field) ⇒ Object
Class Method Details
.enabled? ⇒ 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? = [log_type, envelope[:ts].to_s, envelope[:pub], envelope[:v].to_s, routing_key].compact.map{|x| utf(x)} logger.tagged() { 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, ) = ["BANTER LOG_LEVEL:#{@@log_map[log_level].capitalize.to_s}", Process::pid.to_s].map{|x| utf(x)} logger.tagged() { logger.send(@@log_map[log_level], utf(.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, ) return unless enabled? = ["BANTER SERVICE", service_name, Process::pid] logger.tagged() { logger.info .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. = ["BANTER SUBSCRIBER FAILED", Time.now.to_i.to_s, routing_key].map{|x| utf(x)} logger.tagged() { 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 |
.logger ⇒ Object
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 |