Sha256: 006d1829d6fcdc572e14e4a91e4320bf38fbb67649b81dcaaafd6ede87d51c10

Contents?: true

Size: 558 Bytes

Versions: 3

Compression:

Stored size: 558 Bytes

Contents

require 'time'

class StrftimeLogger
  class LtsvFormatter
    def initialize(opts={})
    end

    def call(severity, message = nil, &block)
      if message.nil?
        if block_given?
          message = yield
        else
          message = ""
        end
      end
      time = Time.now.iso8601
      "time:#{time}\t#{format_message(message)}\n"
    end

    private

    def format_message(message)
      unless message.is_a?(Hash)
        message = { message: message }
      end
      message.map {|k, v| "#{k}:#{v}" }.join("\t")
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
strftime_logger-0.0.4 lib/strftime_logger/ltsv_formatter.rb
strftime_logger-0.0.3 lib/strftime_logger/ltsv_formatter.rb
strftime_logger-0.0.2 lib/strftime_logger/ltsv_formatter.rb