class ActFluentLoggerRails::FluentLogger
Public Class Methods
new(options, level, log_tags)
click to toggle source
# File lib/act-fluent-logger-rails/logger.rb, line 77 def initialize(options, level, log_tags) self.level = level port = options[:port] host = options[:host] nanosecond_precision = options[:nanosecond_precision] @messages_type = (options[:messages_type] || :array).to_sym @tag = options[:tag] @severity_key = (options[:severity_key] || :severity).to_sym @flush_immediately = options[:flush_immediately] logger_opts = {host: host, port: port, nanosecond_precision: nanosecond_precision} @fluent_logger = ::Fluent::Logger::FluentLogger.new(nil, logger_opts) @severity = 0 @messages = [] @log_tags = log_tags @map = {} after_initialize if respond_to? :after_initialize end
Public Instance Methods
[](key)
click to toggle source
# File lib/act-fluent-logger-rails/logger.rb, line 126 def [](key) @map[key] end
[]=(key, value)
click to toggle source
# File lib/act-fluent-logger-rails/logger.rb, line 130 def []=(key, value) @map[key] = value end
add(severity, message = nil, progname = nil, &block)
click to toggle source
# File lib/act-fluent-logger-rails/logger.rb, line 95 def add(severity, message = nil, progname = nil, &block) return true if severity < level message = (block_given? ? block.call : progname) if message.blank? return true if message.blank? add_message(severity, message) true end
add_message(severity, message)
click to toggle source
# File lib/act-fluent-logger-rails/logger.rb, line 103 def add_message(severity, message) @severity = severity if @severity < severity message = case message when ::String message when ::Exception "#{ message.message } (#{ message.class })\n" << (message.backtrace || []).join("\n") else message.inspect end if message.encoding == Encoding::UTF_8 @messages << message else @messages << message.dup.force_encoding(Encoding::UTF_8) end flush if @flush_immediately end
close()
click to toggle source
# File lib/act-fluent-logger-rails/logger.rb, line 155 def close @fluent_logger.close end
flush()
click to toggle source
# File lib/act-fluent-logger-rails/logger.rb, line 134 def flush return if @messages.empty? messages = if @messages_type == :string @messages.join("\n") else @messages end @map[:messages] = messages @map[@severity_key] = format_severity(@severity) if @tags @log_tags.keys.zip(@tags).each do |k, v| @map[k] = v end end @fluent_logger.post(@tag, @map) @severity = 0 @messages.clear @tags = nil @map.clear end
format_severity(severity)
click to toggle source
# File lib/act-fluent-logger-rails/logger.rb, line 167 def format_severity(severity) ActFluentLoggerRails::Logger::SEV_LABEL[severity] || 'ANY' end
level()
click to toggle source
# File lib/act-fluent-logger-rails/logger.rb, line 159 def level @level end
level=(l)
click to toggle source
# File lib/act-fluent-logger-rails/logger.rb, line 163 def level=(l) @level = l end