Class: Richat::Logger

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Logger

Returns a new instance of Logger.



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/richat/logger.rb', line 7

def initialize(options = {})
  original_log_header = ::Logger::LogDevice.instance_method(:add_log_header)
  ::Logger::LogDevice.send(:define_method, :add_log_header) { |_file| nil }

  @logger = ::Logger.new(options[:log_file])
  ::Logger::LogDevice.send(:define_method, original_log_header.name, original_log_header)

  @logger.formatter = proc do |_severity, datetime, role, msg|
    "[#{role}] #{datetime.strftime('%Y-%m-%d %H:%M:%S')}\n\n#{msg}\n\n"
  end
end

Instance Attribute Details

#loggerObject (readonly)

Returns the value of attribute logger.



5
6
7
# File 'lib/richat/logger.rb', line 5

def logger
  @logger
end

Class Method Details

.empty_loggerObject



24
25
26
# File 'lib/richat/logger.rb', line 24

def empty_logger
  ->() {}
end

Instance Method Details

#call(log_data) ⇒ Object



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

def call(log_data)
  logger.info(log_data[:role]) { log_data[:content] }
end