]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/logging/analysis/analysis.factor
core, basis, extra: Remove DOS line endings from files.
[factor.git] / basis / logging / analysis / analysis.factor
index b58001100deb9dc5f1a796e27b9780387042dab8..da1df05b335dca004750da83c5f74c9b1ae443fc 100644 (file)
@@ -1,74 +1,74 @@
-! Copyright (C) 2008, 2010 Slava Pestov.\r
-! See http://factorcode.org/license.txt for BSD license.\r
-USING: kernel sequences namespaces words assocs logging sorting\r
-prettyprint io io.styles io.files io.encodings.utf8\r
-strings combinators accessors arrays math\r
-logging.server logging.parser calendar.format ;\r
-IN: logging.analysis\r
-\r
-SYMBOL: word-names\r
-SYMBOL: errors\r
-SYMBOL: word-histogram\r
-SYMBOL: message-histogram\r
-\r
-: analyze-entry ( entry -- )\r
-    dup level>> { ERROR CRITICAL } member-eq? [ dup errors get push ] when\r
-    dup word-name>> word-histogram get inc-at\r
-    dup word-name>> word-names get member? [\r
-        dup [ level>> ] [ word-name>> ] [ message>> ] tri 3array\r
-        message-histogram get inc-at\r
-    ] when\r
-    drop ;\r
-\r
-: recent-histogram ( assoc n -- alist )\r
-    [ sort-values <reversed> ] dip short head ;\r
-\r
-: analyze-entries ( entries word-names -- errors word-histogram message-histogram )\r
-    [\r
-        word-names set\r
-        V{ } clone errors set\r
-        H{ } clone word-histogram set\r
-        H{ } clone message-histogram set\r
-\r
-        [ analyze-entry ] each\r
-\r
-        errors get\r
-        word-histogram get 10 recent-histogram\r
-        message-histogram get 10 recent-histogram\r
-    ] with-scope ;\r
-\r
-: histogram. ( assoc quot -- )\r
-    standard-table-style [\r
-        [\r
-            [ swapd with-cell pprint-cell ] with-row\r
-        ] curry assoc-each\r
-    ] tabular-output ; inline\r
-\r
-: 10-most-recent ( errors -- errors )\r
-    10 tail* "Only showing 10 most recent errors" print nl ;\r
-\r
-: errors. ( errors -- )\r
-    dup length 10 >= [ 10-most-recent ] when\r
-    log-entries. ;\r
-\r
-: analysis. ( errors word-histogram message-histogram -- )\r
-    nl "==== FREQUENT MESSAGES:" print nl\r
-    "Total: " write dup values sum . nl\r
-    [\r
-        [ first name>> write bl ]\r
-        [ second write ": " write ]\r
-        [ third "\n" join write ]\r
-        tri\r
-    ] histogram.\r
-    nl nl\r
-    "==== FREQUENT WORDS:" print nl\r
-    [ write ] histogram.\r
-    nl nl\r
-    "==== ERRORS:" print nl\r
-    errors. ;\r
-\r
-: analyze-log ( lines word-names -- )\r
-    [ parse-log ] dip analyze-entries analysis. ;\r
-\r
-: analyze-log-file ( service word-names -- )\r
-    [ parse-log-file ] dip analyze-entries analysis. ;\r
+! Copyright (C) 2008, 2010 Slava Pestov.
+! See http://factorcode.org/license.txt for BSD license.
+USING: kernel sequences namespaces words assocs logging sorting
+prettyprint io io.styles io.files io.encodings.utf8
+strings combinators accessors arrays math
+logging.server logging.parser calendar.format ;
+IN: logging.analysis
+
+SYMBOL: word-names
+SYMBOL: errors
+SYMBOL: word-histogram
+SYMBOL: message-histogram
+
+: analyze-entry ( entry -- )
+    dup level>> { ERROR CRITICAL } member-eq? [ dup errors get push ] when
+    dup word-name>> word-histogram get inc-at
+    dup word-name>> word-names get member? [
+        dup [ level>> ] [ word-name>> ] [ message>> ] tri 3array
+        message-histogram get inc-at
+    ] when
+    drop ;
+
+: recent-histogram ( assoc n -- alist )
+    [ sort-values <reversed> ] dip short head ;
+
+: analyze-entries ( entries word-names -- errors word-histogram message-histogram )
+    [
+        word-names set
+        V{ } clone errors set
+        H{ } clone word-histogram set
+        H{ } clone message-histogram set
+
+        [ analyze-entry ] each
+
+        errors get
+        word-histogram get 10 recent-histogram
+        message-histogram get 10 recent-histogram
+    ] with-scope ;
+
+: histogram. ( assoc quot -- )
+    standard-table-style [
+        [
+            [ swapd with-cell pprint-cell ] with-row
+        ] curry assoc-each
+    ] tabular-output ; inline
+
+: 10-most-recent ( errors -- errors )
+    10 tail* "Only showing 10 most recent errors" print nl ;
+
+: errors. ( errors -- )
+    dup length 10 >= [ 10-most-recent ] when
+    log-entries. ;
+
+: analysis. ( errors word-histogram message-histogram -- )
+    nl "==== FREQUENT MESSAGES:" print nl
+    "Total: " write dup values sum . nl
+    [
+        [ first name>> write bl ]
+        [ second write ": " write ]
+        [ third "\n" join write ]
+        tri
+    ] histogram.
+    nl nl
+    "==== FREQUENT WORDS:" print nl
+    [ write ] histogram.
+    nl nl
+    "==== ERRORS:" print nl
+    errors. ;
+
+: analyze-log ( lines word-names -- )
+    [ parse-log ] dip analyze-entries analysis. ;
+
+: analyze-log-file ( service word-names -- )
+    [ parse-log-file ] dip analyze-entries analysis. ;