Skip to content

Instantly share code, notes, and snippets.

@ingemar
Created December 5, 2008 11:52
Show Gist options
  • Save ingemar/32316 to your computer and use it in GitHub Desktop.
Save ingemar/32316 to your computer and use it in GitHub Desktop.
class Article < ActiveRecord::Base
LOGFILE = File.join(RAILS_ROOT, '/log/', "article_#{RAILS_ENV}.log")
def validate
log "was validated!"
end
def log(*args)
args.size == 1 ? (message = args; severity = :info) : (severity, message = args)
Article.logger severity, "Article##{self.id}: #{message}"
end
def self.logger(severity = nil, message = nil)
@article_logger ||= Article.open_log
if !severity.nil? && !message.nil? && @article_logger.respond_to?(severity)
@article_logger.send severity, "[#{Time.now.to_s(:db)}] [#{severity.to_s.capitalize}] #{message}\n"
end
message or @article_logger
end
def self.open_log
ActiveSupport::BufferedLogger.new(LOGFILE)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment