class AwesomeFluentLogger::Logger

Attributes

logger[R]

Public Class Methods

new(fluent: nil, level: DEBUG, progname: nil, formatter: nil, datetime_format: nil) click to toggle source
Calls superclass method
# File lib/awesome_fluent_logger/logger.rb, line 9
def initialize(fluent: nil, level: DEBUG, progname: nil, formatter: nil, datetime_format: nil)
  super(nil, 0, 0, level: level, progname: progname, formatter: formatter, datetime_format: datetime_format)

  if fluent.is_a?(Hash)
    tag_prefix = fluent.fetch(:tag_prefix, nil)
    @logger = ::Fluent::Logger::FluentLogger.new(tag_prefix, **fluent)
  elsif fluent.respond_to?(:post)
    @logger = fluent
  else
    raise ArgumentError
  end

  @default_formatter = Formatter.new
  @default_formatter.datetime_format = datetime_format
end

Public Instance Methods

<<(msg) click to toggle source
# File lib/awesome_fluent_logger/logger.rb, line 58
def <<(msg)
  @logger&.post(nil, msg)
end
add(severity, message = nil, progname = nil) { || ... } click to toggle source
# File lib/awesome_fluent_logger/logger.rb, line 25
def add(severity, message = nil, progname = nil)
  severity ||= UNKNOWN

  if @logger.nil? or severity < level
    return true
  end

  if progname.nil?
    progname = @progname
  end
  if message.nil?
    if block_given?
      message = yield
    else
      message = progname
      progname = @progname
    end
  end

  formatted_severity = format_severity(severity)

  data = format_message(formatted_severity, Time.now, progname, message)

  unless data.is_a?(Hash)
    data = {data: data}
  end

  tag = [progname&.+('.'), formatted_severity.downcase].join

  @logger.post(tag, data)
  true
end
close() click to toggle source
# File lib/awesome_fluent_logger/logger.rb, line 62
def close
  @logger&.close
end