Module: LogStashLogger

Defined in:
lib/logstash-logger/device.rb,
lib/logstash-logger/logger.rb,
lib/logstash-logger/railtie.rb,
lib/logstash-logger/version.rb,
lib/logstash-logger/formatter.rb,
lib/logstash-logger/device/tcp.rb,
lib/logstash-logger/device/udp.rb,
lib/logstash-logger/device/base.rb,
lib/logstash-logger/device/file.rb,
lib/logstash-logger/device/unix.rb,
lib/logstash-logger/device/redis.rb,
lib/logstash-logger/device/socket.rb,
lib/logstash-logger/device/stdout.rb,
lib/logstash-logger/tagged_logging.rb,
lib/logstash-logger/device/connectable.rb

Defined Under Namespace

Modules: Device, TaggedLogging Classes: Formatter, Railtie

Constant Summary collapse

VERSION =
"0.6.2"
HOST =
::Socket.gethostname

Class Method Summary collapse

Class Method Details

.included(base) ⇒ Object



16
17
18
19
20
21
22
23
24
# File 'lib/logstash-logger/logger.rb', line 16

def self.included(base)
  base.instance_eval do
    attr_reader :device

    def flush
      !!@device.flush
    end
  end
end

.new(*args) ⇒ Object



5
6
7
8
9
10
11
12
13
14
# File 'lib/logstash-logger/logger.rb', line 5

def self.new(*args)
  opts = extract_opts(*args)
  @device = Device.new(opts)

  ::Logger.new(@device).tap do |logger|
    logger.extend(self)
    logger.extend(TaggedLogging)
    logger.formatter = Formatter.new
  end
end

.setup(app) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/logstash-logger/railtie.rb', line 4

def self.setup(app)
  return unless app.config.logstash.present?

  logger_options = app.config.logstash

  if logger_options.type == :file
    logger_options.path ||= app.config.paths["log"].first
  end

  if app.config.respond_to?(:autoflush_log)
    logger_options.sync = app.config.autoflush_log
  end

  logger = LogStashLogger.new(logger_options)

  logger.level = ::Logger.const_get(app.config.log_level.to_s.upcase)

  app.config.logger = logger
end