Module: CloudWatchLogger::Client::InstanceMethods

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

Instance Method Summary collapse

Instance Method Details

#formatterObject



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

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



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

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



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

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

#massage_message(incoming_message, severity, processid) ⇒ Object



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

def massage_message(incoming_message, severity, processid)
  outgoing_message = ""
  
  outgoing_message << "pid=#{processid}, thread=#{Thread.current.object_id}, 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



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

def setup_credentials(credentials)
  @credentials = credentials
end

#setup_log_group_name(name) ⇒ Object



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

def setup_log_group_name(name)
  @log_group_name = name
end

#setup_log_stream_name(name) ⇒ Object



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

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