Sha256: 00d4368a2e1851d0d1aa85ba22afc07b1f66cd512ad926cc0737d9c15dcc7f79

Contents?: true

Size: 1.15 KB

Versions: 5

Compression:

Stored size: 1.15 KB

Contents

require :logger.to_s unless BBLib::in_opal?

module BBLib

  def self.logger
    @logger ||= default_logger
  end

  def self.default_logger
    log = ::Logger.new(STDOUT)
    log.level = ::Logger::INFO
    log.formatter = proc do |severity, datetime, progname, msg|
      severity = severity.to_s.to_color(severity) if BBLib.color_logs
      if msg.is_a?(Exception)
        msg = msg.inspect + "\n\t" + msg.backtrace.join("\n\t")
      end
      "#{datetime} [#{severity}] #{msg.to_s.chomp}\n"
    end
    log.datetime_format = '%Y-%m-%d %H:%M:%S'
    log
  end

  def self.logger=(logger)
    raise ArgumentError, 'Must be set to a valid logger' unless logger.is_a?(Logger)
    @logger = logger
  end

  def self.enable_logger(enable = true)
    @logger_on = enable
  end

  def self.log_enabled?
    @logger_on
  end

  def self.color_logs
    @color_logs
  end

  def self.color_logs=(toggle)
    @color_logs = (toggle ? true : false)
  end

  class << self
    [:fatal, :error, :warn, :info, :debug].each do |sev|
      define_method(sev) do |*args|
        logger.send(sev, *args) if logger
      end
    end
  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
bblib-2.0.5 lib/bblib/core/util/logging.rb
bblib-2.0.4 lib/bblib/core/util/logging.rb
bblib-2.0.3 lib/bblib/core/util/logging.rb
bblib-2.0.1 lib/bblib/core/util/logging.rb
bblib-2.0.0 lib/bblib/core/util/logging.rb