Class: DiscourseLogstashLogger

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

Class Method Summary collapse

Class Method Details

.logger(uri:, type:) ⇒ Object



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

def self.logger(uri:, type:)
  # See Discourse.os_hostname
  hostname =
    begin
      require "socket"
      Socket.gethostname
    rescue => e
      `hostname`.chomp
    end

  LogStashLogger.new(
    uri: uri,
    sync: true,
    customize_event: ->(event) do
      event["hostname"] = hostname
      event["severity_name"] = event["severity"]
      event["severity"] = Object.const_get("Logger::Severity::#{event["severity"]}")
      event["type"] = type
      event["pid"] = Process.pid
    end,
  )
end