Sha256: 7ca110c409de39bd68ab82b98181c6e326463b69597af3b5c03e2afa6213bc4b

Contents?: true

Size: 1.98 KB

Versions: 27

Compression:

Stored size: 1.98 KB

Contents

#          Copyright (c) 2008 Michael Fellinger m.fellinger@gmail.com
# All files in this distribution are subject to the terms of the Ruby license.

module Ramaze

  # This module provides a basic skeleton for your own loggers to be compatible.
  # The minimal usage is like this:
  #
  #   class MyLogger
  #     include Logging
  #
  #     def log(tag, *args)
  #       p tag => args
  #     end
  #   end

  module Logging

    # Takes the tag (:warn|:debug|:error|:info) and the name of a method to be
    # called upon elements of msgs that don't respond to :to_str
    # Goes on and sends the tag and transformed messages each to the #log method.
    # If you include this module you have to define #log or it will raise.

    def tag_log(tag, meth, *msgs)
      msgs.each do |msg|
        string = (msg.respond_to?(:to_str) ? msg : msg.send(meth))
        log(tag, string)
      end
    end

    # Converts everything given to strings and passes them on with :info

    def info(*objects)
      tag_log(:info, :to_s, *objects)
    end

    # Converts everything given to strings and passes them on with :warn

    def warn(*objects)
      tag_log(:warn, :to_s, *objects)
    end

    # inspects objects if they are no strings. Tag is :debug

    def debug(*objects)
      tag_log(:debug, :inspect, *objects)
    end

    # inspects objects if they are no strings. Tag is :dev

    def dev(*objects)
      tag_log(:dev, :inspect, *objects)
    end

    alias << debug

    # Takes either an Exception or just a String, formats backtraces to be a bit
    # more readable and passes all of this on to tag_log :error

    def error(ex)
      if ex.respond_to?(:exception)
        message = ex.backtrace
        message.map!{|m| m.to_s.gsub(/^#{Regexp.escape(Dir.pwd)}/, '.') }
        message.unshift(ex.inspect)
      else
        message = ex.to_s
      end
      tag_log(:error, :to_s, *message)
    end

    # nothing

    def shutdown
    end

    # stub for WEBrick

    def debug?
      false
    end
  end

end

Version data entries

27 entries across 27 versions & 4 rubygems

Version Path
Pistos-ramaze-2009.04.08 lib/ramaze/log/logging.rb
Pistos-ramaze-2009.06.12 lib/ramaze/log/logging.rb
manveru-ramaze-2009.04.01 lib/ramaze/log/logging.rb
manveru-ramaze-2009.04.08 lib/ramaze/log/logging.rb
manveru-ramaze-2009.04.18 lib/ramaze/log/logging.rb
manveru-ramaze-2009.04.22 lib/ramaze/log/logging.rb
manveru-ramaze-2009.04 lib/ramaze/log/logging.rb
manveru-ramaze-2009.05.08 lib/ramaze/log/logging.rb
manveru-ramaze-2009.05 lib/ramaze/log/logging.rb
manveru-ramaze-2009.06.04 lib/ramaze/log/logging.rb
manveru-ramaze-2009.06.12 lib/ramaze/log/logging.rb
manveru-ramaze-2009.06 lib/ramaze/log/logging.rb
manveru-ramaze-2009.07 lib/ramaze/log/logging.rb
rjspotter-ramaze-2009.06.29 lib/ramaze/log/logging.rb
rjspotter-ramaze-2009.06.31 lib/ramaze/log/logging.rb
ramaze-2010.06.18 lib/ramaze/log/logging.rb
ramaze-2010.04.04 lib/ramaze/log/logging.rb
ramaze-2010.04 lib/ramaze/log/logging.rb
ramaze-2010.03 lib/ramaze/log/logging.rb
ramaze-2010.01 lib/ramaze/log/logging.rb