Module: Ramaze::Logging

Overview

This module provides a basic skeleton for your own loggers to be compatible.

Examples:

class MyLogger
  include Logging

  def log(tag, *args)
    p tag => args
  end
end

Instance Method Summary collapse

Instance Method Details

#debug(*objects) ⇒ Object Also known as: <<

Inspects objects if they are no strings. Tag is :debug

Parameters:

  • objects (Array)

    An array of objects that will be inspected.



60
61
62
# File 'lib/ramaze/log/logging.rb', line 60

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

#debug?Boolean

Stub for WEBrick

Returns:

  • (Boolean)


103
104
105
# File 'lib/ramaze/log/logging.rb', line 103

def debug?
  false
end

#dev(*objects) ⇒ Object

Inspects objects if they are no strings. Tag is :dev

Parameters:

  • objects (Array)

    An array of objects that will be inspected.



69
70
71
# File 'lib/ramaze/log/logging.rb', line 69

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

#error(ex) ⇒ Object

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

Parameters:

  • ex (Object)

    The exception that was raised.



81
82
83
84
85
86
87
88
89
90
# File 'lib/ramaze/log/logging.rb', line 81

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

#info(*objects) ⇒ Object

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

Parameters:

  • objects (Array)

    An array of objects that need to be converted to strings.



41
42
43
# File 'lib/ramaze/log/logging.rb', line 41

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

#shutdownObject

Nothing.

THINK: Is this really required? It doesn’t do anything anyway.



97
98
# File 'lib/ramaze/log/logging.rb', line 97

def shutdown
end

#tag_log(tag, meth, *msgs) ⇒ Object

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.

Parameters:

  • tag (String)

    The level of the log message.

  • meth (String)
  • msgs (Array)

    The data that should be logged.



28
29
30
31
32
33
# File 'lib/ramaze/log/logging.rb', line 28

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

#warn(*objects) ⇒ Object

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

Parameters:

  • objects (Array)

    An array of objects that need to be converted to strings.



51
52
53
# File 'lib/ramaze/log/logging.rb', line 51

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