Sha256: 3f29b6dad3f09bc37243d2056d6b6217fa90fae80d2668aa52a30b4e8200069b

Contents?: true

Size: 930 Bytes

Versions: 2

Compression:

Stored size: 930 Bytes

Contents

require 'time'
require 'logger'

module Toiler
  module Utils
    # Initializes and exposes Toiler's default logger
    module Logging
      # Toiler's default log formatter
      class Pretty < Logger::Formatter
        def call(sev, time, progname, msg)
          formatted = msg.respond_to?(:gsub) ? msg.gsub("\n", "\n\t") : msg
          time = time.utc.iso8601
          pid = Process.pid
          "#{time} Pid:#{pid} Actor:#{progname} Level:#{sev}: #{formatted}\n"
        end
      end

      module_function

      def initialize_logger(log_target = STDOUT)
        log_target = STDOUT if log_target.nil?
        @logger = Logger.new(log_target)
        @logger.level = Logger::INFO
        @logger.formatter = Pretty.new
        @logger
      end

      def logger
        @logger || initialize_logger
      end

      def logger=(log)
        @logger = (log ? log : Logger.new('/dev/null'))
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
toiler-0.2.1 lib/toiler/utils/logging.rb
toiler-0.2.0 lib/toiler/utils/logging.rb