[log4cl-cvs] CVS update: log4cl/appender.lisp

Nicolas Lamirault nlamirault at common-lisp.net
Fri Mar 5 15:08:27 UTC 2004


Update of /project/log4cl/cvsroot/log4cl
In directory common-lisp.net:/tmp/cvs-serv26132

Modified Files:
	appender.lisp 
Log Message:
Add network appender

Date: Fri Mar  5 10:08:27 2004
Author: nlamirault

Index: log4cl/appender.lisp
diff -u log4cl/appender.lisp:1.4 log4cl/appender.lisp:1.5
--- log4cl/appender.lisp:1.4	Tue Mar  2 13:37:45 2004
+++ log4cl/appender.lisp	Fri Mar  5 10:08:27 2004
@@ -21,6 +21,7 @@
 
 (defclass appender ()
   ((name :initarg :name
+	 :initform nil
 	 :accessor appender-name)
    (layout :initarg :layout
 	   :accessor appender-layout))
@@ -28,8 +29,10 @@
 
 (defmethod initialize-instance :after ((appender appender) &rest initargs)
   (declare (ignore initargs))
-  (with-slots (layout) appender
-    (setf layout (make-instance 'simple-layout))))
+  (with-slots (layout name) appender
+    (setf layout (make-instance 'simple-layout))
+    (when (null name)
+      (setf name (type-of appender)))))
 
 ;; ----------
 ;; Protocole
@@ -167,3 +170,36 @@
 			 (cons "M" (write-to-string month))
 			 (cons "D" (write-to-string date)))))
       (replace-string date-pattern pattern))))
+
+
+
+;; -----------------
+;; Network Appender
+;; -----------------
+
+
+(defclass network-appender (appender)
+  ((server :initarg :server 
+           :accessor network-appender-server)
+   (data :initarg :data
+         :initform '()
+         :accessor network-appender-data)
+   (items :initarg :size
+          :initform 10
+          :accessor network-appender-items))
+  (:documentation "Network appender bufferize logs message, and send them when size is over"))
+
+
+(defmethod log-msg ((appender network-appender) name level message)
+  (setf (slot-value appender 'data)
+        (cons (format-log-message (appender-layout appender) name level message)
+              (network-appender-data appender))))
+
+
+(defun create-buffer (tokens)
+  "Create a paragrah from a list of string"
+  (apply #'concatenate 'string
+         (mapcar #'(lambda (token)
+                     (let ((new-token (format nil "~A~%" token)))
+                       (concatenate 'string new-token)))
+                 tokens)))





More information about the Log4cl-cvs mailing list