Sha256: 99a180c029450e2411da70c5798b1cdb03287fe1cbac735c7d7605fd3f39d534
Contents?: true
Size: 1.45 KB
Versions: 3
Compression:
Stored size: 1.45 KB
Contents
# -*- encoding: utf-8 -*- require 'logger' class XLogger < Logger def initialize(hint = {}) if(hint[:rotate]) super(hint[:file] || STDOUT, hint[:rotate]) else super(hint[:file] || STDOUT) end STDOUT.sync = true self.formatter = Formatter.new self.datetime_format = hint[:date_format] || "%d.%m %H:%M:%S" # Don't change default logger if asked if hint[:dont_touch_rails_logger].blank? && defined?(ActiveRecord::Base) ActiveRecord::Base.logger = self def Rails.logger; ActiveRecord::Base.logger; end # This raise warning to STDOUT #Object.const_set "RAILS_DEFAULT_LOGGER", self end self.level = hint[:log_level] || rails_env_log_level log_sql if hint[:log_sql] || !Rails.env.production? end class Formatter < Logger::Formatter def call(severity, time, progname, msg) if severity == 'INFO' && msg.nil? # use this if you want a simple blank line without date in your logs: # just call a logger.info without any params "\n" else format_datetime(time) << " " << msg2str(msg) << "\n" end end end def log_sql ActiveRecord::Base.connection.logger = self if defined?(ActiveRecord::Base) end def rails_env_log_level Rails.env.production? ? Logger::INFO : Logger::DEBUG end end module ActiveRecord module ConnectionAdapters class AbstractAdapter def logger=(val) @logger = val end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
bin_script-0.1.2 | lib/bin_script/xlogger.rb |
bin_script-0.1.1 | lib/bin_script/xlogger.rb |
bin_script-0.1 | lib/bin_script/xlogger.rb |