Class: Ocular::Logging::KafkaLogger
- Inherits:
-
Object
- Object
- Ocular::Logging::KafkaLogger
- Defined in:
- lib/ocular/logging/kafka_logger.rb
Overview
Most of the Logger class is copied from the Ruby Logger class source code.
Defined Under Namespace
Classes: Formatter
Instance Method Summary collapse
- #add(severity, message = nil, run_id = nil, &block) ⇒ Object
-
#initialize(settings = nil, kafka = nil) ⇒ KafkaLogger
constructor
A new instance of KafkaLogger.
- #log_cause(type, environment, run_id = nil) ⇒ Object
- #log_event(property, value, run_id = nil) ⇒ Object
- #log_timing(key, value, run_id = nil) ⇒ Object
Constructor Details
#initialize(settings = nil, kafka = nil) ⇒ KafkaLogger
Returns a new instance of KafkaLogger.
9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/ocular/logging/kafka_logger.rb', line 9 def initialize(settings=nil, kafka=nil) @level = Severity::DEBUG @formatter = Formatter.new if kafka != nil @kafka = kafka else @kafka = Kafka.new(settings) end @settings = settings @producer = @kafka.producer end |
Instance Method Details
#add(severity, message = nil, run_id = nil, &block) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/ocular/logging/kafka_logger.rb', line 23 def add(severity, = nil, run_id = nil, &block) severity ||= Severity::UNKNOWN if severity < @level return true end if .nil? if block_given? = yield else = progname end end @producer.produce(@formatter.(severity, Time.now, run_id, ), topic: @settings[:topic], partition_key: run_id) end |
#log_cause(type, environment, run_id = nil) ⇒ Object
44 45 46 |
# File 'lib/ocular/logging/kafka_logger.rb', line 44 def log_cause(type, environment, run_id = nil) @producer.produce(@formatter.format_cause(type, environment, Time.now, run_id), topic: @settings[:topic], partition_key: run_id) end |
#log_event(property, value, run_id = nil) ⇒ Object
40 41 42 |
# File 'lib/ocular/logging/kafka_logger.rb', line 40 def log_event(property, value, run_id = nil) @producer.produce(@formatter.format_event(property, value, Time.now, run_id), topic: @settings[:topic], partition_key: run_id) end |
#log_timing(key, value, run_id = nil) ⇒ Object
48 49 50 |
# File 'lib/ocular/logging/kafka_logger.rb', line 48 def log_timing(key, value, run_id = nil) @producer.produce(@formatter.format_event("timing:" + key, value, Time.now, run_id), topic: @settings[:topic], partition_key: run_id) end |