Class: EventMachine::Logger

Inherits:
Object
  • Object
show all
Defined in:
lib/em_logger/logger.rb,
lib/em_logger/version.rb

Constant Summary collapse

VERSION =
'1.0.0'

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(logger) ⇒ Logger

Returns a new instance of Logger.



25
26
27
28
29
30
31
32
# File 'lib/em_logger/logger.rb', line 25

def initialize(logger)
  @logger = logger
  @logger_queue = ::Queue.new

  start_worker

  EM.add_shutdown_hook { drain } if EM.reactor_running?
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args, &block) ⇒ Object



78
79
80
81
# File 'lib/em_logger/logger.rb', line 78

def method_missing(method, *args, &block)
  return super unless @logger.respond_to?(method)
  @logger.send(method, *args, &block)
end

Instance Attribute Details

#loggerObject (readonly)

Returns the value of attribute logger.



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

def logger
  @logger
end

#logger_queueObject (readonly)

Returns the value of attribute logger_queue.



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

def logger_queue
  @logger_queue
end

Class Method Details

.logger(logger = nil) ⇒ Object



21
22
23
# File 'lib/em_logger/logger.rb', line 21

def self.logger(logger = nil)
  @logger ||= new(logger || ::Logger.new(STDOUT))
end

Instance Method Details

#<<(data) ⇒ Object



74
75
76
# File 'lib/em_logger/logger.rb', line 74

def <<(data)
  @logger_queue.push(LogMessage.new(nil, data))
end

#add(severity, message = nil, progname = nil) ⇒ Object Also known as: log



34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/em_logger/logger.rb', line 34

def add(severity, message = nil, progname = nil)
  return true if severity < @logger.level
  if message.nil?
    if block_given?
      message = yield
    else
      message = progname
      progname = @logger.progname
    end
  end
  @logger_queue.push(LogMessage.new(severity, message, progname))
  @worker.wakeup
end

#debug(progname = nil, &block) ⇒ Object



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

def debug(progname = nil, &block)
  add(::Logger::DEBUG, nil, progname, &block)
end

#error(progname = nil, &block) ⇒ Object



62
63
64
# File 'lib/em_logger/logger.rb', line 62

def error(progname = nil, &block)
  add(::Logger::ERROR, nil, progname, &block)
end

#fatal(progname = nil, &block) ⇒ Object



66
67
68
# File 'lib/em_logger/logger.rb', line 66

def fatal(progname = nil, &block)
  add(::Logger::FATAL, nil, progname, &block)
end

#info(progname = nil, &block) ⇒ Object



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

def info(progname = nil, &block)
  add(::Logger::INFO, nil, progname, &block)
end

#respond_to?(method, include_private = false) ⇒ Boolean

Returns:

  • (Boolean)


83
84
85
# File 'lib/em_logger/logger.rb', line 83

def respond_to?(method, include_private = false)
  @logger.respond_to?(method, include_private) || super(method, include_private)
end

#unknown(progname = nil, &block) ⇒ Object



70
71
72
# File 'lib/em_logger/logger.rb', line 70

def unknown(progname = nil, &block)
  add(::Logger::UNKNOWN, nil, progname, &block)
end

#warn(progname = nil, &block) ⇒ Object



58
59
60
# File 'lib/em_logger/logger.rb', line 58

def warn(progname = nil, &block)
  add(::Logger::WARN, nil, progname, &block)
end