]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/logging/insomniac/insomniac.factor
factor: trim using lists
[factor.git] / basis / logging / insomniac / insomniac.factor
index 91baae631f507dfdeea5f92fac3c954e3d1762cd..a7dc6110e7a6daa32adac4c6473748846c130191 100644 (file)
@@ -1,37 +1,31 @@
-! Copyright (C) 2008 Slava Pestov.\r
-! See http://factorcode.org/license.txt for BSD license.\r
-USING: logging.analysis logging.server logging smtp kernel\r
-io.files io.streams.string namespaces make alarms assocs\r
-io.encodings.utf8 accessors calendar sequences ;\r
-QUALIFIED: io.sockets\r
-IN: logging.insomniac\r
-\r
-SYMBOL: insomniac-sender\r
-SYMBOL: insomniac-recipients\r
-\r
-: ?analyze-log ( service word-names -- string/f )\r
-    [ analyze-log-file ] with-string-writer ;\r
-\r
-: email-subject ( service -- string )\r
-    [\r
-        "[INSOMNIAC] " % % " on " % io.sockets:host-name %\r
-    ] "" make ;\r
-\r
-: (email-log-report) ( service word-names -- )\r
-    dupd ?analyze-log [ drop ] [\r
-        <email>\r
-            swap >>body\r
-            insomniac-recipients get >>to\r
-            insomniac-sender get >>from\r
-            swap email-subject >>subject\r
-        send-email\r
-    ] if-empty ;\r
-\r
-\ (email-log-report) NOTICE add-error-logging\r
-\r
-: email-log-report ( service word-names -- )\r
-    "logging.insomniac" [ (email-log-report) ] with-logging ;\r
-\r
-: schedule-insomniac ( service word-names -- )\r
-    [ [ email-log-report ] assoc-each rotate-logs ] 2curry\r
-    1 days every drop ;\r
+! Copyright (C) 2008, 2010 Slava Pestov.
+! See http://factorcode.org/license.txt for BSD license.
+USING: accessors calendar io.streams.string kernel logging
+logging.analysis make namespaces smtp timers ;
+QUALIFIED: io.sockets
+IN: logging.insomniac
+
+SYMBOL: insomniac-sender
+SYMBOL: insomniac-recipients
+
+: email-subject ( service -- string )
+    [
+        "Log analysis for " % % " on " % io.sockets:host-name %
+    ] "" make ;
+
+:: (email-log-report) ( service word-names -- )
+    <email>
+        [ service word-names analyze-log-file ] with-string-writer >>body
+        insomniac-recipients get >>to
+        insomniac-sender get >>from
+        service email-subject >>subject
+    send-email ;
+
+\ (email-log-report) NOTICE add-error-logging
+
+: email-log-report ( service word-names -- )
+    "logging.insomniac" [ (email-log-report) ] with-logging ;
+
+: schedule-insomniac ( service word-names -- )
+    [ email-log-report rotate-logs ] 2curry
+    1 days every drop ;