Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

converted to md

  • Loading branch information...
commit 62bce3ca692f4987e434910af741f7eb81dd441e 1 parent 2f25a89
Rob Hurring authored
Showing with 0 additions and 99 deletions.
  1. +0 −99 README.rdoc
99 README.rdoc
View
@@ -1,99 +0,0 @@
-= Class Logger
-
-Makes adding multiple loggers or custom loggers to any ruby class. Written mainly to have certain models in Rails log to a different file while maintaining the original logger (or overwriting it).
-
-== Credits
-
-The idea came from *eandrejko* and his class_logger. I just added some more flexibility and made it to work outside of Rails.
-
-== Installation
-
-gem install class_logger
-
-== Options
-
-ClassLogger supports a bunch of options that are passed straight to the Logger. Most of these options should make sense, but they are described in further detail in Logger's rdoc files.
-
-rotate:: Set this to daily, weekly, etc. - anything Logger supports
-max_size:: Set this to the size you want the log to rotate at (or set +rotate+ above)
-keep:: Set this to how many logfiles you want to keep after rotating (or set +rotate+ above)
-path:: The path to your log folder. (Default: "%<rails_root>s/log")
-in:: This is the name of your logfile. (Use: "%<class_name>s" to interpolate the class's name) (Default: "%<class_name>s.log")
-as:: This is the method your logger will be available to the class as. (Default: logger)
-formatter:: This can be any custom proc or method you want to assign. (See Logger's rdoc files for more details on this)
-level:: This is the log level
-
-== Interpolations
-
-The following can be used in the +path+ or +in+ options.
-
-%<rails_root>s:: Will replace itself with Rails.root when in a rails app
-%<current>s:: Will replace itself with the +dirname+ of the file
-%<parent>s:: Will replace itself with the parent directory of the file
-%<class_name>s:: Will replace itself with the name of the class.
-
-== Usage
-
- # simple use case to override active records logger
- class Transaction < ActiveRecord::Base
- include ClassLogger
- has_logger
-
- def process!
- logger.info "Creating transation: #{amount}" # => goes to log/transaction.log
- end
- end
-
-
- # custom logs for special models within rails
- # specifying a custom logfile and logger name
- class Transaction < ActiveRecord::Base
- include ClassLogger
- has_logger :in => 'gateway.log', :as => :gateway_logger
-
- def process!
- gateway_logger.info "Creating transation: #{amount}" # => goes to log/gateway.log
- logger.info "Hello default logger!" # => goes to log/<environment>.log
- end
- end
-
- # overriding active record's default logger with a custom logfile
- class Transaction < ActiveRecord::Base
- include ClassLogger
- has_logger :in => 'gateway.log'
-
- def process!
- logger.info "Creating transation: #{amount}" # => goes to log/gateway.log
- end
- end
-
- # create a logger for a module
- module Something
- include ClassLogger
- has_logger :path => File.expand_path("../log", __FILE__), :in => 'my_module.log'
- has_logger :path => '/var/log', :in => 'utoh.log', :as => :utoh_logger
-
- # has_logger only makes instance methods, so we need to wrap it up
- def self.logger
- self.loggers[:logger]
- end
-
- def self.utoh
- self.loggers[:utoh_logger]
- end
- end
- Something.logger.info "Testing 123"
- Something.utoh.error "oops!"
-
- # inside a class with a custom formatter
- class Something
- include ClassLogger
- has_logger :path => "%<current>s/log", :rotate => :daily,
- :formatter => proc{ |severity, time, program_name, message| "[%s](Something): %s\n" % [severity, message] }
-
- def initialize
- logger.debug "Created Something."
- end
- end
- Something.new
- Something.loggers[:logger].debug "System logger"
Please sign in to comment.
Something went wrong with that request. Please try again.