X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=logger.lisp;h=0b442ce49e7daab0e485f05ca9eed54a0bfd1dfa;hb=5516c70e7bfcb8e8dce5e2e82383cb85f476745f;hp=a05d19e2b496b6b948898dcc003c1bc879396f28;hpb=8ef59d7b3053085bc81f4a118b783f0e2ac939a1;p=irc-logger.git diff --git a/logger.lisp b/logger.lisp index a05d19e..0b442ce 100644 --- a/logger.lisp +++ b/logger.lisp @@ -7,6 +7,7 @@ (in-package #:irc-logger) (defvar *daemon-monitor-process* nil "Process of background monitor.") +(defparameter *timeout* 60) (defclass channel () ((name :initarg :name :reader c-name @@ -141,6 +142,9 @@ (defmethod log-file-path (output-root channel-name year month day (format (eql :sexp))) (%log-file-path output-root channel-name year month day "sexp")) +(defmethod log-file-path (output-root channel-name year month day (format (eql :binary))) + (%log-file-path output-root channel-name year month day "bin")) + (defmethod log-file-path (output-root channel-name year month day (format (eql :text))) (%log-file-path output-root channel-name year month day "txt")) @@ -372,7 +376,11 @@ (apply #'format nil fmt args))))) (defun add-private-log-entry (logger fmt &rest args) - (apply #'add-log-entry (get-private-log-stream logger) fmt args)) + (apply #'add-log-entry + (if (get-private-log-stream logger) + (get-private-log-stream logger) + *standard-output*) + fmt args)) (defun privmsg-hook (msg) (let ((logger (find-logger-with-connection (connection msg))) @@ -626,15 +634,31 @@ (add-private-log-entry (find-logger-with-nick nick) "Closing previously active connection [add-logger].") (ignore-errors (remove-logger nick))) - (format t "Calling create-logger [add-logger].~%") - (let ((logger (create-logger nick server :channels channels :output output - :logging-stream logging-stream :password password - :realname realname :username username - :private-log private-log - :unknown-log unknown-log - :formats formats - :async async))) - (format t "Pushing newly created logger ~A [add-logger].~%" logger) + (add-private-log-entry nil "Calling create-logger [add-logger].~%") + (let ((logger + (do ((new-logger + (mp:with-timeout (*timeout* nil) + (create-logger nick server :channels channels :output output + :logging-stream logging-stream :password password + :realname realname :username username + :private-log private-log + :unknown-log unknown-log + :formats formats + :async async)) + (mp:with-timeout (*timeout* nil) + (create-logger nick server :channels channels :output output + :logging-stream logging-stream :password password + :realname realname :username username + :private-log private-log + :unknown-log unknown-log + :formats formats + :async async)))) + (new-logger + (progn + (add-private-log-entry nil "Acquired new logger ~A." new-logger) + new-logger)) + (add-private-log-entry nil "Timeout trying to create new logger [add-logger].")))) + (add-private-log-entry logger "Pushing newly created logger ~A [add-logger].~%" logger) (push logger *loggers*) (start-logger logger async) logger)) @@ -720,7 +744,6 @@ (defun is-connected (logger) (%is-connected logger)) -(defparameter *timeout* 60) (defun is-connected (logger) #-allegro (%is-connected logger)