Module: Tkellem::EasyLogger

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.loggerObject



14
15
16
17
18
# File 'lib/tkellem.rb', line 14

def self.logger
  return @logger if @logger
  self.logger = Logger.new(STDERR)
  @logger
end

.logger=(new_logger) ⇒ Object



5
6
7
8
9
10
11
12
13
# File 'lib/tkellem.rb', line 5

def self.logger=(new_logger)
  @logger = new_logger
  if @logger.is_a?(Logger)
    @logger.formatter = proc do |severity, time, progname, msg|
      obj, msg = msg if msg.is_a?(Array)
      "#{time.strftime('%y-%m-%dT%H:%M:%S')} #{severity[0,3]} #{(obj && obj.log_name) || 'tkellem'} (#{obj && obj.object_id}): #{msg}\n"
    end
  end
end

.traceObject



23
24
25
# File 'lib/tkellem.rb', line 23

def self.trace
  @trace || @trace = false
end

.trace=(val) ⇒ Object



20
21
22
# File 'lib/tkellem.rb', line 20

def self.trace=(val)
  @trace = val
end

Instance Method Details

#failsafe(event) ⇒ Object



35
36
37
38
39
40
41
42
# File 'lib/tkellem.rb', line 35

def failsafe(event)
  yield
rescue => e
  # if the failsafe rescue fails, we're in a really bad state and should probably just die
  self.error "exception while handling #{event}"
  self.error e.to_s
  (e.backtrace || []).each { |line| self.error line }
end

#log_nameObject



27
28
29
# File 'lib/tkellem.rb', line 27

def log_name
  nil
end

#trace(msg) ⇒ Object



31
32
33
# File 'lib/tkellem.rb', line 31

def trace(msg)
  puts("TRACE: #{log_name}: #{msg}") if EasyLogger.trace
end