Module: Morpheus::Logging

Defined in:
lib/morpheus/logging.rb

Overview

Provides global Logging behavior By default, Morpheus::Logging.logger is set to STDOUT with level INFO

Defined Under Namespace

Modules: HasLogger Classes: DarkPrinter, Logger

Constant Summary collapse

DEFAULT_LOG_LEVEL =
ENV['DEBUG'] ? Logger::DEBUG : Logger::INFO
@@log_level =
DEFAULT_LOG_LEVEL
@@logger =
nil

Class Method Summary collapse

Class Method Details

.debug?Boolean

is log level debug?

Returns:

  • (Boolean)


69
70
71
72
# File 'lib/morpheus/logging.rb', line 69

def self.debug?
  # self.log_level && self.log_level <= Logger::DEBUG
  self.logger.debug?
end

.log_levelObject

set the global log level



50
51
52
# File 'lib/morpheus/logging.rb', line 50

def self.log_level
  @@log_level
end

.loggerObject

get the global logger instance



32
33
34
35
36
37
# File 'lib/morpheus/logging.rb', line 32

def self.logger
  if !@@logger
    set_logger(STDOUT, @@log_level)
  end
  @@logger
end

whether or not to print stack traces

Returns:

  • (Boolean)


75
76
77
# File 'lib/morpheus/logging.rb', line 75

def self.print_stacktrace?
  self.debug?
end

.set_log_level(level) ⇒ Object

set the global log level



55
56
57
58
59
60
61
# File 'lib/morpheus/logging.rb', line 55

def self.set_log_level(level)
  @@log_level = level.to_i
  if @@logger
    @@logger.level = @@log_level
  end
  @@log_level
end

.set_logger(logdev, log_level = @@log_level) ⇒ Object

set the global logger to another logger or filename



40
41
42
43
44
45
46
47
# File 'lib/morpheus/logging.rb', line 40

def self.set_logger(logdev, log_level = @@log_level)
  @@logger = logdev.is_a?(Logger) ? logdev : Logger.new(logdev)
  @@logger.level = log_level || DEFAULT_LOG_LEVEL
  @@logger.formatter = proc do |severity, datetime, progname, msg|
    "#{msg}\n"
  end
  @@logger
end