Module: CloudWatchLogger::Client::InstanceMethods

Included in:
AWS_SDK
Defined in:
lib/cloudwatchlogger/client.rb

Instance Method Summary collapse

Instance Method Details

#formatterObject



37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/cloudwatchlogger/client.rb', line 37

def formatter
  proc do |severity, datetime, progname, msg|
    processid=Process.pid
    if @format == :json && msg.is_a?(Hash)
      MultiJson.dump(msg.merge({ :severity => severity,
                                 :datetime => datetime,
                                 :progname => progname,
                                 :pid      => processid }))
    else
      message = "#{datetime} "
      message << massage_message(msg, severity, processid)
    end
  end
end

#masher(hash, prefix = nil) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/cloudwatchlogger/client.rb', line 22

def masher(hash, prefix=nil)
  hash.map do |v|
    if v[1].is_a?(Hash)
      masher(v[1],masherize_key(prefix,v[0]))
    else
      "#{masherize_key(prefix,v[0])}=" << case v[1]
      when Symbol
        v[1].to_s
      else
        v[1].inspect
      end
    end
  end.join(", ")
end

#masherize_key(prefix, key) ⇒ Object



18
19
20
# File 'lib/cloudwatchlogger/client.rb', line 18

def masherize_key(prefix,key)
  [prefix,key.to_s].compact.join('.')
end

#massage_message(incoming_message, severity, processid) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/cloudwatchlogger/client.rb', line 52

def massage_message(incoming_message, severity, processid)
  outgoing_message = ""
  
  outgoing_message << "pid=#{processid}, severity=#{severity}, "
  
  case incoming_message
  when Hash
    outgoing_message << masher(incoming_message)
  when String
    outgoing_message << incoming_message
  else
    outgoing_message << incoming_message.inspect
  end
  outgoing_message
end

#setup_credentials(credentials) ⇒ Object



68
69
70
# File 'lib/cloudwatchlogger/client.rb', line 68

def setup_credentials(credentials)
  @credentials = credentials
end

#setup_log_group_name(name) ⇒ Object



72
73
74
# File 'lib/cloudwatchlogger/client.rb', line 72

def setup_log_group_name(name)
  @log_group_name = name
end

#setup_log_stream_name(name) ⇒ Object



76
77
78
79
80
81
82
# File 'lib/cloudwatchlogger/client.rb', line 76

def setup_log_stream_name(name)
  @log_stream_name = name
  if @log_stream_name.nil?
    uuid = UUID.new
    @log_stream_name = "#{Socket.gethostname}-#{uuid.generate}"
  end
end