# 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