Class: DaemonLogger

Inherits:
Object
  • Object
show all
Includes:
Mixins, Singleton
Defined in:
lib/daemon_logger.rb

Defined Under Namespace

Modules: Mixins Classes: NullLogger

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Mixins

#log, #log_exception, #with_exception_logging

Instance Attribute Details

#email_receiversObject

Returns the value of attribute email_receivers.



9
10
11
# File 'lib/daemon_logger.rb', line 9

def email_receivers
  @email_receivers
end

#loggerObject



38
39
40
41
42
43
44
45
# File 'lib/daemon_logger.rb', line 38

def logger
  if @logger
    @logger
  else
    warn 'Logger not initialized yet, run init with :log_file_path'
    NullLogger.new
  end
end

#smtp_serverObject

Returns the value of attribute smtp_server.



9
10
11
# File 'lib/daemon_logger.rb', line 9

def smtp_server
  @smtp_server
end

Class Method Details

.init(*params) ⇒ Object



34
35
36
# File 'lib/daemon_logger.rb', line 34

def self.init(*params)
  instance.init(*params)
end

Instance Method Details

#init(params) ⇒ Object

Params

params<Hash>
log_file_path<String>

куда будет писаться лог

email_receivers<Array>

список получателей сообщений о критических ошибках

Raises:

  • (TypeError)


22
23
24
25
26
27
28
29
30
31
32
# File 'lib/daemon_logger.rb', line 22

def init(params)
  raise TypeError.new(":log_file_path required") unless params[:log_file_path]
  file = File.open(params[:log_file_path], 'a')
  file.sync = true
  self.logger = Logger.new(file)
  logger.level = Logger::DEBUG
  logger.formatter = Logger::Formatter.new
  logger.datetime_format = "%y-%m-%d %H:%M:%S.%L"
  self.email_receivers = params[:email_receivers].to_a
  self.smtp_server = params[:smtp_server] || 'localhost'
end