Class: DohLogger::EmailAcceptor

Inherits:
Object
  • Object
show all
Defined in:
lib/doh/logger/email_acceptor.rb

Instance Method Summary collapse

Constructor Details

#initialize(smtp_server, smtp_port, from_address, to_addresses, logfile_name, subject_format = nil, body_format = DohLogger::exception_email_format) ⇒ EmailAcceptor

Returns a new instance of EmailAcceptor.



15
16
17
18
19
20
21
22
23
24
# File 'lib/doh/logger/email_acceptor.rb', line 15

def initialize(smtp_server, smtp_port, from_address, to_addresses, logfile_name, subject_format = nil, body_format = DohLogger::exception_email_format)
  @smtp_server = smtp_server
  @smtp_port = smtp_port || 25
  @from_address = from_address
  @to_addresses = to_addresses
  @logfile_name = logfile_name
  @subject_formatter = Formatter.new(subject_format || "%severity - %msg")
  @body_formatter = Formatter.new(body_format)
  @body_formatter.register_format('%logfile_name') {|event| @logfile_name}
end

Instance Method Details

#log(event) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/doh/logger/email_acceptor.rb', line 26

def log(event)
  subject = @subject_formatter.replace(event)
  body = @body_formatter.replace(event)
  msg = "Subject:#{subject}\nFrom:#{@from_address}\nTo:#{@to_addresses.join(', ')}\nContent-Type: text/plain\n\n#{body}"
  Net::SMTP.start(@smtp_server) do |smtp|
    begin
      smtp.send_message(msg, @from_address, @to_addresses)
    rescue Exception => excpt
      puts "got exception: #{excpt.inspect}"
    end
  end
end