Sha256: 569e251702a389f567ae549642a86ca331fe9fabbc9f455349d5a04c96ff8c61

Contents?: true

Size: 1.34 KB

Versions: 24

Compression:

Stored size: 1.34 KB

Contents

require 'logger'

module LogjamAgent
  class SyslogLikeFormatter
    def initialize
      @hostname = LogjamAgent.hostname
      @app_name = "rails"
      @attributes = []
      @newline = ActiveSupport::VERSION::STRING < "4.0" ? "" : "\n"
    end

    attr_accessor :attributes

    SEV_LABEL = Logger::SEV_LABEL.map{|sev| "%-5s" % sev}

    def format_severity(severity)
      if severity.is_a?(String)
        "%-5s" % severity
      else
        SEV_LABEL[severity] || 'ALIEN'
      end
    end

    def format_time(timestamp)
      timestamp.strftime("%b %d %H:%M:%S.#{"%06d" % timestamp.usec}")
    end

    def format_message(msg)
      msg.strip
    end

    def call(severity, timestamp, progname, msg)
      "#{format_severity(severity)} #{format_time(timestamp)}#{render_attributes}#{format_host_info(progname)}: #{format_message(msg)}#{@newline}"
    end

    if !defined?(Rails) || Rails.env.development?
      def format_host_info(progname); ""; end
    else
      def format_host_info(progname)
       " #{@hostname} #{progname||@app_name}[#{$$}]"
      end
    end

    def render_attributes
      @attributes.map{|key, value| " #{key}[#{value}]"}.join
    end

    def set_attribute(name, value)
      if attribute = @attributes.detect{|n,v| n == name}
        attribute[1] = value
      else
        @attributes << [name, value]
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
logjam_agent-0.12.1 lib/logjam_agent/syslog_like_formatter.rb
logjam_agent-0.12.0 lib/logjam_agent/syslog_like_formatter.rb
logjam_agent-0.11.3 lib/logjam_agent/syslog_like_formatter.rb
logjam_agent-0.11.2 lib/logjam_agent/syslog_like_formatter.rb
logjam_agent-0.11.1 lib/logjam_agent/syslog_like_formatter.rb
logjam_agent-0.11.0 lib/logjam_agent/syslog_like_formatter.rb
logjam_agent-0.10.2 lib/logjam_agent/syslog_like_formatter.rb
logjam_agent-0.10.1 lib/logjam_agent/syslog_like_formatter.rb
logjam_agent-0.10.0 lib/logjam_agent/syslog_like_formatter.rb
logjam_agent-0.9.12 lib/logjam_agent/syslog_like_formatter.rb
logjam_agent-0.9.11 lib/logjam_agent/syslog_like_formatter.rb
logjam_agent-0.9.10 lib/logjam_agent/syslog_like_formatter.rb
logjam_agent-0.9.9 lib/logjam_agent/syslog_like_formatter.rb
logjam_agent-0.9.8 lib/logjam_agent/syslog_like_formatter.rb
logjam_agent-0.9.7 lib/logjam_agent/syslog_like_formatter.rb
logjam_agent-0.9.6 lib/logjam_agent/syslog_like_formatter.rb
logjam_agent-0.9.5 lib/logjam_agent/syslog_like_formatter.rb
logjam_agent-0.9.4 lib/logjam_agent/syslog_like_formatter.rb
logjam_agent-0.9.3 lib/logjam_agent/syslog_like_formatter.rb
logjam_agent-0.9.2 lib/logjam_agent/syslog_like_formatter.rb