FIX: Use 'hostname' when Discourse.os_hostname is not available

This may be the case when DiscourseLogstashLogger is initialized before
the application (see unicorn.conf.rb)

This commit is a follow-up to 28292d2759.

Co-authored-by: David Taylor <david@taylorhq.com>
Co-authored-by: Sam Saffron <sam.saffron@gmail.com>
This commit is contained in:
Dan Ungureanu 2020-02-18 13:37:39 +02:00 committed by GitHub
parent 59db2811b0
commit 66893c020f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4,11 +4,19 @@ 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) {
event['hostname'] = Discourse.os_hostname
event['hostname'] = hostname
event['severity_name'] = event['severity']
event['severity'] = Object.const_get("Logger::Severity::#{event['severity']}")
event['type'] = type