Class: Sad::Logger

Inherits:
Object
  • Object
show all
Defined in:
lib/sad/logger.rb

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ Logger

# Low-level information, mostly for developers

DEBUG = 0
# generic, useful information about system operation
INFO = 1
# a warning
WARN = 2
# a handleable error condition
ERROR = 3
# an unhandleable error that results in a program crash
FATAL = 4
# an unknown message that should always be logged
UNKNOWN = 5


19
20
21
22
23
24
25
# File 'lib/sad/logger.rb', line 19

def initialize(opts={})
	@opts = {
		:path => STDOUT,
		:level => 1
	}.update opts.dup
	@logger = init_log
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_name, *args, &block) ⇒ Object



58
59
60
# File 'lib/sad/logger.rb', line 58

def method_missing(method_name, *args, &block)
	@logger.send(method_name, *args, &block)
end

Instance Method Details

#init_logObject



32
33
34
35
36
37
# File 'lib/sad/logger.rb', line 32

def init_log
	logger = ::Logger.new(@opts[:path])
	logger.level = @opts[:level]
	logger.formatter = ::Logger::Formatter.new
	logger
end

#reopenObject



27
28
29
30
# File 'lib/sad/logger.rb', line 27

def reopen
	@logger = init_log
	reset_loggers(@logger)
end

#reset_loggers(logger) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/sad/logger.rb', line 39

def reset_loggers(logger)
	if defined?(ActiveRecord)
		ActiveRecord::Base.logger = logger
	end

	if defined?(Rails)
		Rails.logger = logger
	end

	if defined?(Mongoid)
		Mongoid.logger = logger
	end

	if defined?(Paperclip)
		Paperclip.logger = logger
	end

end