Coverage report: /home/ellis/comp/core/app/skel/core/log.lisp
Kind | Covered | All | % |
expression | 0 | 102 | 0.0 |
branch | 0 | 20 | 0.0 |
Key
Not instrumented
Conditionalized out
Executed
Not executed
Both branches taken
One branch taken
Neither branch taken
1
;;; log.lisp --- Skel Logger
6
(in-package :skel/core/log)
8
(defclass sk-log-schema (rdb-log-schema sk-schema) ())
10
(defvar *skel-log-schema* (make-instance 'sk-log-schema))
12
(defclass skel-db-sink (rdb-sink) ()
14
:db (make-db :rocksdb :path (skel-db-path "log/") :opts (default-rdb-opts))))
16
(defmethod initialize-instance :after ((self skel-db-sink) &key (schema *skel-log-schema*))
17
(load-schema self schema))
19
(defvar *skel-logger-config*
20
(config:make-config :logger :ast '((level-filter :id :level-filter)
21
(tag-tree-filter :id :tag-filter)
22
(skel-db-sink :id :sink))))
24
(defvar-unbound *skel-logger*)
26
(defun sk-log (level fmt &rest args)
27
(msg *skel-logger* (make-instance 'log-message
30
:content (format nil fmt args))))
32
(defun init-skel-logger (&optional (cfg *skel-logger-config*))
33
(unless (and (boundp '*skel-logger*) *skel-logger*)
34
(let* ((lgr (build cfg))
36
(if (probe-file (name db))
42
(setq *skel-logger* lgr))))
44
;; (funcall 'init-skel-db-logger)
45
(defun sk-log-list (&optional level)
46
(with-db (db :db (sink *skel-logger*) :open nil :close nil)
47
(with-iter (it (iter db :column (find-column level db)))
49
(loop while (iter-valid-p)
50
collect (cons (time:octets-to-timestamp (key))
51
(sb-ext:octets-to-string (val)))
54
(defun sk-log-repair ()
55
(if (and (boundp '*skel-logger*) *skel-logger*)
56
(repair-db (sink *skel-logger*))
57
(with-db (db :db (make-instance 'skel-db-sink) :open nil :close t)
61
(defun sk-log-shutdown ()
62
(when (and (boundp '*skel-logger*) *skel-logger*)
63
(shutdown-db (sink *skel-logger*))
64
(setq *skel-logger* nil)))
66
(defun sk-log-close ()
67
(when (and (boundp '*skel-logger*) *skel-logger*)
68
(close-db (sink *skel-logger*))))
75
(defun sk-log-destroy ()
76
(destroy-db (make-instance 'skel-db-sink)))
78
;; (inspect (create-co (make-instance 'skel-db-sink)))