Class: EventHub::Components::Logger

Inherits:
Object
  • Object
show all
Defined in:
lib/eventhub/components/logger.rb

Class Method Summary collapse

Class Method Details

.logstash(processor_name, environment) ⇒ Object



11
12
13
14
15
16
17
18
19
20
# File 'lib/eventhub/components/logger.rb', line 11

def self.logstash(processor_name, environment)
  # configure logstash with custom fields
  LogStashLogger.configure do |config|
    config.customize_event do |event|
      event["app_name"] = processor_name
      event["env"] = environment
    end
  end
  LogStashLogger.new([{type: :file, path: "logs/ruby/#{processor_name}.log", sync: true}])
end

.logstash_cloud(processor_name, environment) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/eventhub/components/logger.rb', line 22

def self.logstash_cloud(processor_name, environment)
  # configure logstash with custom fields
  LogStashLogger.configure do |config|
    config.customize_event do |event|
      # renaming default fields to be eventhub cloud compatible
      event["time"] = event.timestamp.iso8601(6)
      event["msg"] = event.remove("message")
      event["level"] = event.remove("severity")
      event["host"] = event.remove("host") # for reordering

      # to be removed or replaced
      event.remove("@version")
      event.remove("@timestamp")

      # additional fields
      event["app"] = processor_name
      event["env"] = environment
    end
  end
  LogStashLogger.new([{type: :stdout}])
end

.stdoutObject



2
3
4
5
6
7
8
9
# File 'lib/eventhub/components/logger.rb', line 2

def self.stdout
  logger = Logger.new($stdout)
  logger.formatter = proc do |severity, time, progname, msg|
    time_in_string = "#{time.strftime("%Y-%m-%d %H:%M:%S")}.#{"%04d" % (time.usec / 100)}"
    "#{time_in_string}: #{"%10s" % severity} - #{msg}\n"
  end
  logger
end