git.fiddlerwoaroof.com
swank-utils.lisp
018b56cb
 (defpackage :fwoar.swank-utils
   #+fw.dev
   (:nicknames fw.su)
   (:use :cl )
256da8f3
   (:export #:log-json #:log-object))
018b56cb
 (in-package :fwoar.swank-utils)
 
 (defvar *target-identifier* (alexandria:make-keyword (gensym "JSON")))
 (defun log-json (obj &optional (indent t) (target-identifier *target-identifier*))
   (let* ((buffer-stream (swank-buffer-streams:make-buffer-output-stream target-identifier))
          (stream (yason:make-json-output-stream buffer-stream :indent indent)))
     (unwind-protect (progn (fresh-line buffer-stream)
                            (values (yason:encode obj stream)
                                    target-identifier))
       (terpri buffer-stream)
       (finish-output stream)
       (finish-output buffer-stream)
       (close stream))))
256da8f3
 
 (defvar *log-target-identifier* (alexandria:make-keyword (gensym "LOG")))
 (defun log-object (obj &optional (target-identifier *log-target-identifier*))
   (let* ((stream (swank-buffer-streams:make-buffer-output-stream target-identifier)))
     (unwind-protect (progn (fresh-line stream)
                            (values (princ obj stream)
                                    target-identifier))
       (terpri stream)
       (finish-output stream)
       (close stream))))