Class: Perennial::Logger

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

Constant Summary collapse

LEVELS =
{
  :fatal => 7,
  :error => 6,
  :warn  => 4,
  :info  => 3,
  :debug => 0
}
PREFIXES =
{}
COLOURS =
{
  :fatal => 31, # red
  :error => 33, # yellow
  :warn  => 35, # magenta
  :info  => 32, # green
  :debug => 34  # white
}
@@log_name =
"perennial.log"
@@setup =
false

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path, level = :info, verbose = false) ⇒ Logger

Returns a new instance of Logger.



60
61
62
63
64
# File 'lib/perennial/logger.rb', line 60

def initialize(path, level = :info, verbose = false)
  @level   = level.to_sym
  @verbose = verbose
  @file    = File.open(path, "a+")
end

Instance Attribute Details

#fileObject

Returns the value of attribute file.



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

def file
  @file
end

#levelObject

Returns the value of attribute level.



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

def level
  @level
end

#verboseObject

Returns the value of attribute verbose.



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

def verbose
  @verbose
end

Class Method Details

.method_missing(name, *args, &blk) ⇒ Object



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

def method_missing(name, *args, &blk)
 self.setup # Ensure the logger is setup
 @@logger.send(name, *args, &blk)
end

.respond_to?(symbol, include_private = false) ⇒ Boolean

Returns:

  • (Boolean)


31
32
33
34
# File 'lib/perennial/logger.rb', line 31

def respond_to?(symbol, include_private = false)
  self.setup
  super(symbol, include_private) || @@logger.respond_to?(symbol, include_private)
end

.setupObject



15
16
17
18
# File 'lib/perennial/logger.rb', line 15

def setup
  return if setup?
  setup!
end

.setup!Object



20
21
22
23
24
# File 'lib/perennial/logger.rb', line 20

def setup!
  log_path = Settings.root / "log" / @@log_name.to_str
  @@logger = new(log_path, Settings.log_level, Settings.verbose?)
  @@setup = true
end

.setup?Boolean

Returns:

  • (Boolean)


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

def setup?
  !!@@setup
end

Instance Method Details

#close!Object



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

def close!
  @file.close
end

#log_exception(exception) ⇒ Object



81
82
83
84
85
86
# File 'lib/perennial/logger.rb', line 81

def log_exception(exception)
  error "Exception: #{exception}"
  exception.backtrace.each do |l|
    error ">> #{l}"
  end
end

#verbose?Boolean

Returns:

  • (Boolean)


88
89
90
# File 'lib/perennial/logger.rb', line 88

def verbose?
  !!@vebose
end