]> git.cworth.org Git - sup/blobdiff - lib/sup/logger.rb
keybindings: ; -> buffer-list-mode, b, B, +
[sup] / lib / sup / logger.rb
index e19d906a1c0ebc0508ce3c7f021f639d64a62053..4ac6551bff21e50ab45704f295d6d930edf1ce6d 100644 (file)
@@ -18,14 +18,26 @@ class Logger
   def make_buf
     return if @mode.buffer || !BufferManager.instantiated? || !@respawn || @spawning
     @spawning = true
-    @mode.buffer = BufferManager.instance.spawn "<log>", @mode, :hidden => true
+    @mode.buffer = BufferManager.instance.spawn "log", @mode, :hidden => true, :system => true
     @spawning = false
   end
 
   def log s
 #    $stderr.puts s
-    @mode << "#{Time.now}: #{s.chomp}\n"
     make_buf
+    prefix = "#{Time.now}: "
+    padding = " " * prefix.length
+    first = true
+    s.split(/[\r\n]/).each do |l|
+      l = l.chomp
+      if first
+        first = false
+        @mode << "#{prefix}#{l}\n"
+      else
+        @mode << "#{padding}#{l}\n"
+      end
+    end
+    $stderr.puts "[#{Time.now}] #{s.chomp}" unless BufferManager.instantiated? && @mode.buffer
   end
   
   def self.method_missing m, *a
@@ -39,3 +51,4 @@ class Logger
 end
 
 end
+