Class: Pepys::Logger

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

Constant Summary collapse

REFUSE_TO_FORWARD =
%i(formatter=)

Instance Method Summary collapse

Constructor Details

#initialize(program_name, io, hostname: Socket.gethostname) ⇒ Logger

Returns a new instance of Logger.



11
12
13
14
15
16
# File 'lib/pepys/logger.rb', line 11

def initialize(program_name, io, hostname: Socket.gethostname)
  self.program_name = program_name
  self.hostname = hostname
  self.logger = ::Logger.new(io)
  logger.formatter = Formatter.new(self)
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(meffod, *args) ⇒ Object



30
31
32
33
34
35
36
37
38
# File 'lib/pepys/logger.rb', line 30

def method_missing(meffod, *args)
  return super if REFUSE_TO_FORWARD.include?(meffod)

  if block_given?
    logger.public_send(meffod, *args, &Proc.new)
  else
    logger.public_send(meffod, *args)
  end
end

Instance Method Details

#base_fieldsObject



18
19
20
21
22
23
24
# File 'lib/pepys/logger.rb', line 18

def base_fields
  {
    name: program_name,
    pid: Process.pid,
    hostname: hostname,
  }
end

#respond_to_missing?(meffod) ⇒ Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/pepys/logger.rb', line 26

def respond_to_missing?(meffod)
  logger.respond_to?(meffod) && !REFUSE_TO_FORWARD.include?(meffod)
end