Sha256: be27d77d56b63b17e6693f81c3e1b5b5a85dd18bc6b47d3bafbe565b37c51e09

Contents?: true

Size: 905 Bytes

Versions: 3

Compression:

Stored size: 905 Bytes

Contents

module Logster
  class Message
    attr_accessor :timestamp, :severity, :progname, :message, :key

    def initialize(severity, progname, message, timestamp = nil, key = nil)
      @timestamp = timestamp || get_timestamp
      @severity = severity
      @progname = progname
      @message = message
      @key = key || SecureRandom.hex
    end

    def to_h
      {
        message: @message,
        progname: @progname,
        severity: @severity,
        timestamp: @timestamp,
        key: @key
      }
    end

    def to_json(opts=nil)
      JSON.fast_generate(to_h,opts)
    end

    def self.from_json(json)
      parsed = ::JSON.parse(json)
      new( parsed["severity"],
            parsed["progname"],
            parsed["message"],
            parsed["timestamp"],
            parsed["key"] )
    end

    protected

    def get_timestamp
      (Time.new.to_f * 1000).to_i
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
logster-0.0.3 lib/logster/message.rb
logster-0.0.2 lib/logster/message.rb
logster-0.0.1 lib/logster/message.rb