Class: DaemonLogger
- Inherits:
-
Object
- Object
- DaemonLogger
- Includes:
- Mixins, Singleton
- Defined in:
- lib/daemon_logger.rb
Defined Under Namespace
Modules: Mixins Classes: NullLogger
Instance Attribute Summary collapse
-
#email_receivers ⇒ Object
Returns the value of attribute email_receivers.
- #logger ⇒ Object
-
#smtp_server ⇒ Object
Returns the value of attribute smtp_server.
Class Method Summary collapse
Instance Method Summary collapse
-
#init(params) ⇒ Object
Params params<Hash>:: log_file_path<String>:: куда будет писаться лог email_receivers<Array>:: список получателей сообщений о критических ошибках.
- #send_emails_to_receivers(message) ⇒ Object
Methods included from Mixins
#log, #log_exception, #with_exception_logging
Instance Attribute Details
#email_receivers ⇒ Object
Returns the value of attribute email_receivers.
8 9 10 |
# File 'lib/daemon_logger.rb', line 8 def email_receivers @email_receivers end |
#logger ⇒ Object
37 38 39 40 41 42 43 44 |
# File 'lib/daemon_logger.rb', line 37 def logger if @logger @logger else warn 'Logger not initialized yet, run init with :log_file_path' NullLogger.new end end |
#smtp_server ⇒ Object
Returns the value of attribute smtp_server.
8 9 10 |
# File 'lib/daemon_logger.rb', line 8 def smtp_server @smtp_server end |
Class Method Details
.init(*params) ⇒ Object
33 34 35 |
# File 'lib/daemon_logger.rb', line 33 def self.init(*params) instance.init(*params) end |
Instance Method Details
#init(params) ⇒ Object
Params
- params<Hash>
- log_file_path<String>
-
куда будет писаться лог
- email_receivers<Array>
-
список получателей сообщений о критических ошибках
21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/daemon_logger.rb', line 21 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 |
#send_emails_to_receivers(message) ⇒ Object
46 47 48 49 50 51 52 53 |
# File 'lib/daemon_logger.rb', line 46 def send_emails_to_receivers() return if !email_receivers or email_receivers.empty? Net::SMTP.start(smtp_server) do |smtp| smtp. , '[email protected]', email_receivers end rescue => e log_exception(e, false, "SENDING EXCEPTION EMAIL ERROR") end |