]> git.cworth.org Git - sup/blob - lib/sup/logger.rb
moved evertying to devel
[sup] / lib / sup / logger.rb
1 module Redwood
2
3 class Logger
4   @@instance = nil
5
6   attr_reader :buf
7
8   def initialize
9     raise "only one Log can be defined" if @@instance
10     @@instance = self
11     @mode = LogMode.new
12     @respawn = true
13     @spawning = false # to prevent infinite loops!
14   end
15
16   ## must be called if you want to see anything!
17   ## once called, will respawn if killed...
18   def make_buf
19     return if @mode.buffer || !BufferManager.instantiated? || !@respawn || @spawning
20     @spawning = true
21     @mode.text = ""
22     @mode.buffer = BufferManager.instance.spawn "<log>", @mode, :hidden => true
23     @spawning = false
24   end
25
26   def log s
27 #    $stderr.puts s
28     @mode << "#{Time.now}: #{s}\n"
29     make_buf
30   end
31   
32   def self.method_missing m, *a
33     @@instance = Logger.new unless @@instance
34     @@instance.send m, *a
35   end
36
37   def self.buffer
38     @@instance.buf
39   end
40 end
41
42 end