class XLogger

Public Class Methods

new(hint = {}) click to toggle source
Calls superclass method
# File lib/bin_script/xlogger.rb, line 4
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
  end

  self.level = hint[:log_level] || rails_env_log_level
  log_sql if hint[:log_sql] || !prod_env?
end

Public Instance Methods

log_sql() click to toggle source
# File lib/bin_script/xlogger.rb, line 41
def log_sql
  ActiveRecord::Base.connection.logger = self if defined?(ActiveRecord::Base)
end
prod_env?() click to toggle source
# File lib/bin_script/xlogger.rb, line 49
def prod_env?
  defined?(Rails) && Rails.env == 'production'
end
rails_env_log_level() click to toggle source
# File lib/bin_script/xlogger.rb, line 45
def rails_env_log_level
  prod_env? ? Logger::INFO : Logger::DEBUG
end