discourse/lib/discourse_logstash_logger.rb

29 lines
644 B
Ruby

# frozen_string_literal: true
require "logstash-logger"
class DiscourseLogstashLogger
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
end