-! 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 alarms assocs\r
-io.encodings.utf8 accessors calendar sequences qualified ;\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 ;