Class: XLogger

Inherits:
Logger
  • Object
show all
Defined in:
lib/bin_script/xlogger.rb

Defined Under Namespace

Classes: Formatter

Instance Method Summary collapse

Constructor Details

#initialize(hint = {}) ⇒ XLogger

Returns a new instance of XLogger.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/bin_script/xlogger.rb', line 5

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

Instance Method Details

#log_sqlObject



42
43
44
# File 'lib/bin_script/xlogger.rb', line 42

def log_sql
  ActiveRecord::Base.connection.logger = self if defined?(ActiveRecord::Base)
end

#prod_env?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/bin_script/xlogger.rb', line 50

def prod_env?
  defined?(Rails) && Rails.env == 'production'
end

#rails_env_log_levelObject



46
47
48
# File 'lib/bin_script/xlogger.rb', line 46

def rails_env_log_level
  prod_env? ? Logger::INFO : Logger::DEBUG
end