Class: Featurevisor::Logger

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

Overview

Logger class for handling different log levels

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Logger

Initialize a new logger

Parameters:

  • options (Hash) (defaults to: {})

    Logger options

Options Hash (options):

  • :level (String)

    Log level (default: “info”)

  • :handler (Proc)

    Custom log handler (default: default_log_handler)



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

def initialize(options = {})
  @level = options[:level] || DEFAULT_LOG_LEVEL
  @handler = options[:handler] || method(:default_log_handler)
end

Instance Attribute Details

#handlerObject (readonly)

Returns the value of attribute handler.



11
12
13
# File 'lib/featurevisor/logger.rb', line 11

def handler
  @handler
end

#levelObject (readonly)

Returns the value of attribute level.



11
12
13
# File 'lib/featurevisor/logger.rb', line 11

def level
  @level
end

Instance Method Details

#debug(message, details = nil) ⇒ Object

Log a debug message

Parameters:

  • message (String)

    Log message

  • details (Hash, nil) (defaults to: nil)

    Additional details



41
42
43
# File 'lib/featurevisor/logger.rb', line 41

def debug(message, details = nil)
  log("debug", message, details)
end

#error(message, details = nil) ⇒ Object

Log an error message

Parameters:

  • message (String)

    Log message

  • details (Hash, nil) (defaults to: nil)

    Additional details



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

def error(message, details = nil)
  log("error", message, details)
end

#fatal(message, details = nil) ⇒ Object

Log a fatal message

Parameters:

  • message (String)

    Log message

  • details (Hash, nil) (defaults to: nil)

    Additional details



69
70
71
# File 'lib/featurevisor/logger.rb', line 69

def fatal(message, details = nil)
  log("fatal", message, details)
end

#info(message, details = nil) ⇒ Object

Log an info message

Parameters:

  • message (String)

    Log message

  • details (Hash, nil) (defaults to: nil)

    Additional details



48
49
50
# File 'lib/featurevisor/logger.rb', line 48

def info(message, details = nil)
  log("info", message, details)
end

#log(level, message, details = nil) ⇒ Object

Log a message at a specific level

Parameters:

  • level (String)

    Log level

  • message (String)

    Log message

  • details (Hash, nil) (defaults to: nil)

    Additional details



32
33
34
35
36
# File 'lib/featurevisor/logger.rb', line 32

def log(level, message, details = nil)
  return unless should_handle?(level)

  @handler.call(level, message, details)
end

#set_level(level) ⇒ Object

Set the log level

Parameters:

  • level (String)

    New log level



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

def set_level(level)
  @level = level
end

#warn(message, details = nil) ⇒ Object

Log a warning message

Parameters:

  • message (String)

    Log message

  • details (Hash, nil) (defaults to: nil)

    Additional details



55
56
57
# File 'lib/featurevisor/logger.rb', line 55

def warn(message, details = nil)
  log("warn", message, details)
end