git.fiddlerwoaroof.com
Browse code

Fix handling of untagged lines + update README

fiddlerwoaroof authored on 03/10/2016 17:42:33
Showing 3 changed files
... ...
@@ -11,12 +11,18 @@ entries and record them to their own tables.
11 11
 
12 12
 The db needs to be precreated with this schema:
13 13
 
14
+#+BEGIN_SRC SQL
14 15
 create table messages (severity int, facility int, tag text, pid int, message text, host text, ts datetime default current_timestamp);
15 16
 create table dns_query (query_type text, request text, requester text, added text default current_timestamp);
16 17
 create table dns_reply (query text, reply text, added datetime default current_timestamp);
18
+#+END_SRC
17 19
 
18 20
 
19 21
 * TODO
20 22
 
21 23
 - other db backends
22 24
 - customizable db paths
25
+- batch db updates
26
+- improve filtering command line options
27
+- TUI / CLIM ui
28
+  
... ...
@@ -9,6 +9,11 @@
9 9
 	 (result (dbi:execute query severity facility tag pid message host)))
10 10
     result))
11 11
 
12
+(defun log-untagged-to-sqlite (db &key line)
13
+  (let* ((db-query (dbi:prepare db "insert into untagged (data) values (?)"))
14
+	 (result (dbi:execute db-query line)))
15
+    result))
16
+
12 17
 (defun log-dnsquery-to-sqlite (db &key query-type query from)
13 18
   (let* ((db-query (dbi:prepare db "insert into dns_query (query_type, request, requester) values (?,?,?)"))
14 19
 	 (result (dbi:execute db-query query-type query from)))
... ...
@@ -1,3 +1,7 @@
1
+;; This Source Code Form is subject to the terms of the Mozilla Public
2
+;; License, v. 2.0. If a copy of the MPL was not distributed with this
3
+;; file, You can obtain one at http://mozilla.org/MPL/2.0/.
4
+
1 5
 (in-package #:syslog_helper)
2 6
 
3 7
 (define-codecs facility ()
... ...
@@ -46,6 +50,14 @@
46 50
   (:method (tag metadata message orig-line)
47 51
     (declare (ignore tag metadata message))))
48 52
 
53
+(:method (tag metadata message orig-line)
54
+    (declare (ignore tag metadata message)))
55
+
56
+(defmethod handle-log-message :before ((tag (eql :untagged)) metadata message orig-line)
57
+  (declare (ignore metadata message))
58
+  (dbi:with-connection (db :sqlite3 :database-name "/tmp/logs.db")
59
+      (log-untagged-to-sqlite db :line orig-line)))
60
+
49 61
 (defmethod handle-log-message ((tag (eql :dnsmasq)) metadata message orig-line)
50 62
   (let* ((parsed-query (smug:parse (.dnsmasq-query) message))
51 63
 	 (parsed-reply (unless parsed-query