Sha256: 2084a2a46ea2ec5e9c8f18e342dcb4243680e69699d48977d8c55d124bd100f9

Contents?: true

Size: 586 Bytes

Versions: 4

Compression:

Stored size: 586 Bytes

Contents

require 'multi_json'
require 'active_support/json'
require 'syslog'

class StructuredEventLogger::Syslogger

  class MessageExceedsMaximumSize < StructuredEventLogger::Error; end

  attr_accessor :log_level, :max_size

  def initialize(log_level = Syslog::LOG_INFO, max_size = 64 * 1024 - 1)
    @log_level, @max_size = log_level, max_size
  end

  def call(scope, event, hash, record)
    message = MultiJson.encode(record)
    raise MessageExceedsMaximumSize, "Event too big to be submitted to syslog" if message.bytesize > max_size
    Syslog.log(log_level, '%s', message)
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
structured-event-logger-0.1.3 lib/structured_event_logger/syslogger.rb
structured-event-logger-0.1.2 lib/structured_event_logger/syslogger.rb
structured-event-logger-0.1.1 lib/structured_event_logger/syslogger.rb
structured-event-logger-0.1.0 lib/structured_event_logger/syslogger.rb