class ActFluentLoggerRails::FluentLogger
Public Class Methods
new(options, level, log_tags)
click to toggle source
# File lib/act-fluent-logger-rails/logger.rb, line 80 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} logger_opts[:tls_options] = options[:tls_options] unless options[:tls_options].nil? @fluent_logger = ::Fluent::Logger::FluentLogger.new(nil, logger_opts) @severity = 0 @log_tags = log_tags after_initialize if respond_to?(:after_initialize) && Rails::VERSION::MAJOR < 6 end
Public Instance Methods
[](key)
click to toggle source
# File lib/act-fluent-logger-rails/logger.rb, line 128 def [](key) map[key] end
[]=(key, value)
click to toggle source
# File lib/act-fluent-logger-rails/logger.rb, line 132 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 97 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 105 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 logger_messages << message else logger_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 171 def close @fluent_logger.close end
flush()
click to toggle source
# File lib/act-fluent-logger-rails/logger.rb, line 136 def flush return if logger_messages.empty? messages = if @messages_type == :string logger_messages.join("\n") else logger_messages end map[:messages] = messages map[@severity_key] = format_severity(@severity) add_tags @fluent_logger.post(@tag, map) @severity = 0 logger_messages.clear Thread.current[@tags_thread_key] = nil if @tags_thread_key map.clear end
format_severity(severity)
click to toggle source
# File lib/act-fluent-logger-rails/logger.rb, line 183 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 175 def level @level end
level=(l)
click to toggle source
# File lib/act-fluent-logger-rails/logger.rb, line 179 def level=(l) @level = l end
logger_messages()
click to toggle source
# File lib/act-fluent-logger-rails/logger.rb, line 161 def logger_messages @messages_thread_key ||= "fluentd_logger_messages:#{object_id}".freeze Thread.current[@messages_thread_key] ||= [] end
map()
click to toggle source
# File lib/act-fluent-logger-rails/logger.rb, line 166 def map @map_thread_key ||= "fluentd_logger_map:#{object_id}".freeze Thread.current[@map_thread_key] ||= {} end