 
 (require 'fuel-base)
 
--
 ;;; Customization:
 
 (defvar fuel-log--buffer-name "*fuel messages*"
   "Name of the log buffer")
 
-(defvar fuel-log--max-buffer-size 32000
+(defvar fuel-log--max-buffer-size 128000
   "Maximum size of the Factor messages log")
 
-(defvar fuel-log--max-message-size 512
+(defvar fuel-log--max-message-size 1024
   "Maximum size of individual log messages")
 
 (defvar fuel-log--verbose-p t

               (let ((inhibit-read-only t))
                 (when (> b fuel-log--max-buffer-size)
                   (delete-region (point-min) b))))
            nil t)
  (setq buffer-read-only t))

(defun fuel-log--buffer ()
  (or (get-buffer fuel-log--buffer-name)

        (factor-messages-mode)
        (current-buffer))))

(defun fuel-log--timestamp ()
  (format-time-string "%Y-%m-%d %T"))

(defun fuel-log--format-msg (type args)
  (format "%s %s: %s\n\n" (fuel-log--timestamp) type (apply 'format args)))

(defun fuel-log--msg (type args)
  (when (or fuel-log--debug-p (not fuel-log--inhibit-p))
    (with-current-buffer (fuel-log--buffer)
      (goto-char (point-max))
      (let ((inhibit-read-only t))
        (insert
         (fuel-shorten-str (fuel-log--format-msg type args)
                           fuel-log--max-message-size))))))

(defun fuel-log--warn (&rest args)
  (fuel-log--msg 'WARNING args))

(defun fuel-log--error (&rest args)
  (fuel-log--msg 'ERROR args))

(defun fuel-log--info (&rest args)
  (when fuel-log--verbose-p
    (fuel-log--msg 'INFO args)))

(provide 'fuel-log)

