Sha256: 1cc54baa5d8e01969829ca30a96ebc1921b797daf39057104b7a7e28f7df14c0

Contents?: true

Size: 1.24 KB

Versions: 9

Compression:

Stored size: 1.24 KB

Contents

module Capistrano
  class Logger #:nodoc:
    attr_accessor :level
    attr_reader   :device

    IMPORTANT = 0
    INFO      = 1
    DEBUG     = 2
    TRACE     = 3
    
    MAX_LEVEL = 3

    def initialize(options={})
      output = options[:output] || $stderr
      if output.respond_to?(:puts)
        @device = output
      else
        @device = File.open(output.to_str, "a")
        @needs_close = true
      end

      @options = options
      @level = 0
    end

    def close
      device.close if @needs_close
    end

    def log(level, message, line_prefix=nil)
      if level <= self.level
        indent = "%*s" % [MAX_LEVEL, "*" * (MAX_LEVEL - level)]
        message.each do |line|
          if line_prefix
            device.puts "#{indent} [#{line_prefix}] #{line.strip}\n"
          else
            device.puts "#{indent} #{line.strip}\n"
          end
        end
      end
    end

    def important(message, line_prefix=nil)
      log(IMPORTANT, message, line_prefix)
    end

    def info(message, line_prefix=nil)
      log(INFO, message, line_prefix)
    end

    def debug(message, line_prefix=nil)
      log(DEBUG, message, line_prefix)
    end

    def trace(message, line_prefix=nil)
      log(TRACE, message, line_prefix)
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
capistrano-2.1.0 lib/capistrano/logger.rb
capistrano-2.0.0 lib/capistrano/logger.rb
capistrano-2.4.2 lib/capistrano/logger.rb
capistrano-2.3.0 lib/capistrano/logger.rb
capistrano-2.4.0 lib/capistrano/logger.rb
capistrano-2.4.3 lib/capistrano/logger.rb
capistrano-2.2.0 lib/capistrano/logger.rb
capistrano-2.4.1 lib/capistrano/logger.rb
capistrano-2.5.0 lib/capistrano/logger.rb