]> gitweb.factorcode.org Git - factor.git/blob - basis/logging/insomniac/insomniac.factor
5f323d7ada5b78ee382229060f2e442f7c32f095
[factor.git] / basis / logging / insomniac / insomniac.factor
1 ! Copyright (C) 2008, 2010 Slava Pestov.\r
2 ! See http://factorcode.org/license.txt for BSD license.\r
3 USING: logging.analysis logging.server logging smtp kernel\r
4 io.files io.streams.string namespaces make timers assocs\r
5 io.encodings.utf8 accessors calendar sequences locals ;\r
6 QUALIFIED: io.sockets\r
7 IN: logging.insomniac\r
8 \r
9 SYMBOL: insomniac-sender\r
10 SYMBOL: insomniac-recipients\r
11 \r
12 : email-subject ( service -- string )\r
13     [\r
14         "Log analysis for " % % " on " % io.sockets:host-name %\r
15     ] "" make ;\r
16 \r
17 :: (email-log-report) ( service word-names -- )\r
18     <email>\r
19         [ service word-names analyze-log-file ] with-string-writer >>body\r
20         insomniac-recipients get >>to\r
21         insomniac-sender get >>from\r
22         service email-subject >>subject\r
23     send-email ;\r
24 \r
25 \ (email-log-report) NOTICE add-error-logging\r
26 \r
27 : email-log-report ( service word-names -- )\r
28     "logging.insomniac" [ (email-log-report) ] with-logging ;\r
29 \r
30 : schedule-insomniac ( service word-names -- )\r
31     [ email-log-report rotate-logs ] 2curry\r
32     1 days every drop ;\r