Sha256: 6779f7eec0e36a10630be4fa8dfdca5554abaff261580c335a419f807c046cf4
Contents?: true
Size: 1.94 KB
Versions: 1
Compression:
Stored size: 1.94 KB
Contents
# encoding: utf-8 require 'fedux_org_stdlib/require_files' require_library %w(logger forwardable) require 'fedux_org_stdlib/logging/severity' module FeduxOrgStdlib module Logging # The logger class Logger extend ::Forwardable def_delegators :@logger, :fatal, :warn, :debug, :info, :error, :unknown attr_reader :mode # Create logger # # @param [Logger] logger (::Logger.new( $stderr )) # The logger with should be used to output data def initialize( logger: ::Logger.new($stderr), default_mode: :info ) @logger = logger self.mode = default_mode end # Reset logger to ruby logger def reset @logger = ::Logger.new($stderr) end # Is mode? # # @param [String, Symbol] m # Mode to compare with def mode?(m) mode == m.to_sym end # Change mode of logger: DEBUG, ... + Change the output format # # @param [Symbol] m # the mode: DEBUG, ... def mode=(m) @mode = m case m when :debug @logger.level = ::Logger::DEBUG format_debug when :silent @logger.level = ::Logger::SILENT when :info @logger.level = ::Logger::INFO format_standard else @logger.level = ::Logger::INFO format_standard end end private def format_debug @logger.formatter = proc { |severity, datetime, progname, msg| debug_msg(format("%s %s %s: %s\n", datetime, severity, progname, msg)) } end def format_standard @logger.formatter = proc { |severity, datetime, _, msg| info_msg(format("%s %s: %s\n", datetime, severity, msg)) } end def error_msg(msg) ANSI.red(msg) end def info_msg(msg) msg end def debug_msg(msg) msg end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fedux_org-stdlib-0.7.24 | lib/fedux_org_stdlib/logging/logger.rb |