Sha256: acb51d85f9886e1a67c221db1c4cc0835c13bc69bbaeba486802d976ea7cfde0
Contents?: true
Size: 1.7 KB
Versions: 1
Compression:
Stored size: 1.7 KB
Contents
require 'logger' # @author Sylvain Desbureaux # Most of work grabbed from nuby on rails Hodel 3000 logger # http://nubyonrails.com/articles/a-hodel-3000-compliant-logger-for-the-rest-of-us. # # I've added the way to retrieve the method which sent the log and the class via caller method. # # I've also taken care to take the next one in caller if the methode is lik each, block,... # # In your environmment file(s) (development.rb, test.rb,...) you'll need to add that in order to use this logger: # @example # require File.dirname(__FILE__) + "/../../app/models/logging" # config.logger = Logging.new(config.paths.log.first ) # # And you'll need to put this file (renammed logging.rb here) in app/models folder class Logging < Logger def format_message(severity, timestamp, progname, msg) i = 2 methode = caller[i].split('`')[1].split("'")[0] each_true = false puts methode if methode == "each" each_true = true if methode == "" while methode == "debug" || methode == "info" || methode == "error" || methode.split(' ')[0] == "each" i += 1 methode = caller[i].split('`')[1].split("'")[0] puts methode if each_true end methode = methode.split(' ')[0] == "block" ? methode.split(' ')[-1].center(17) : methode.center(17) objecte = caller[i].split(':')[0].split('/')[-1].split('.')[0].camelize.center(16) "#{timestamp.strftime("%d %b %H:%M:%S")}|rails[#{$PID}]|#{severity.center(8)}|#{objecte}|#{methode}| #{msg2str(msg).gsub(/\n/, '').lstrip}\n" end def msg2str(msg) case msg when ::String msg when ::Exception "#{ msg.message } (#{ msg.class }): " << (msg.backtrace || []).join(" | ") else msg.inspect end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
EasyLogger-0.1.1 | lib/easy_logger/logging_example.rb |