Class: EY::Backup::Logger

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/ey_backup/logger.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(stdout = $stdout, stderr = $stderr) ⇒ Logger

Returns a new instance of Logger.



18
19
20
21
# File 'lib/ey_backup/logger.rb', line 18

def initialize(stdout = $stdout, stderr = $stderr)
  @stdout, @stderr = stdout, stderr
  @verbose = false
end

Instance Attribute Details

#stderrObject

Returns the value of attribute stderr.



7
8
9
# File 'lib/ey_backup/logger.rb', line 7

def stderr
  @stderr
end

#stdoutObject

Returns the value of attribute stdout.



7
8
9
# File 'lib/ey_backup/logger.rb', line 7

def stdout
  @stdout
end

Class Method Details

.quietObject



14
15
16
# File 'lib/ey_backup/logger.rb', line 14

def self.quiet
  new(StringIO.new)
end

Instance Method Details

#debug(msg) ⇒ Object



73
74
75
# File 'lib/ey_backup/logger.rb', line 73

def debug(msg)
  stderr.puts("#{Time.now} DEBUG: #{msg}")
end

#error(msg, db = nil) ⇒ Object



64
65
66
67
# File 'lib/ey_backup/logger.rb', line 64

def error(msg, db = nil)
  stderr.puts("#{Time.now} ERROR: #{msg}")
  push_dashboard_alert("#{msg}. Details at /var/log/eybackup.log.", "FAILURE", db)
end

#exception(type, msg) ⇒ Object



69
70
71
# File 'lib/ey_backup/logger.rb', line 69

def exception(type, msg)
  self.error(msg)
end

#info(msg) ⇒ Object



38
39
40
# File 'lib/ey_backup/logger.rb', line 38

def info(msg)
  puts "#{Time.now} #{msg}" 
end

#okay(msg, db = nil) ⇒ Object



54
55
56
57
# File 'lib/ey_backup/logger.rb', line 54

def okay(msg, db = nil)
  stderr.puts("#{Time.now} OKAY: #{msg}")
  # push_dashboard_alert(msg, "OKAY", db), we don't push OKAY alerts, we push a summary alert instead.
end

#push_dashboard_alert(message, alert_level, db = nil) ⇒ Object



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

def push_dashboard_alert(message, alert_level, db = nil)
  message.gsub!("\n", '\n')
  type="process-dbbackup"
  type = type + " #{db}" unless db.nil?
  full_txt= "Severity: #{alert_level}\n" \
          + "Time: #{Time.now.to_i}\n" \
          + "Type: #{type}\n" \
          + "Plugin: exec\n" \
          + "raw_message: '#{message}'"
  full_txt = Shellwords.escape(full_txt)
  alert_command = %Q(echo #{full_txt} | /engineyard/bin/ey-alert.rb 2>&1)
  verbose "Sending dashboard alert"
  system(alert_command)
end

#say(msg, newline = true) ⇒ Object



50
51
52
# File 'lib/ey_backup/logger.rb', line 50

def say(msg, newline = true)
  newline ? info(msg) : stdout.print(msg)
end

#set_verboseObject



46
47
48
# File 'lib/ey_backup/logger.rb', line 46

def set_verbose()
  @verbose = true
end

#verbose(msg) ⇒ Object



42
43
44
# File 'lib/ey_backup/logger.rb', line 42

def verbose(msg)
  info(msg) if @verbose
end

#warn(msg, db = nil) ⇒ Object



59
60
61
62
# File 'lib/ey_backup/logger.rb', line 59

def warn(msg, db = nil)
  stderr.puts("#{Time.now} WARNING: #{msg}")
  push_dashboard_alert(msg, "WARNING", db)
end