]> matita.cs.unibo.it Git - helm.git/commitdiff
- generalized sysLogger class so that it logs to a generic output
authorStefano Zacchiroli <zack@upsilon.cc>
Fri, 17 Jan 2003 15:14:53 +0000 (15:14 +0000)
committerStefano Zacchiroli <zack@upsilon.cc>
Fri, 17 Jan 2003 15:14:53 +0000 (15:14 +0000)
  channel, now it can be used to log also to files, sockets, ...
- better pretty printing of debugging messages: timestamps added
- fixed copyright notice

helm/uwobo/src/ocaml/uwobo_logger.ml
helm/uwobo/src/ocaml/uwobo_logger.mli

index 3a197041c220a39ba54992a4de800c314f82667b..bbd7e03f1280e6b97189181caae06f77da4e3967 100644 (file)
@@ -1,27 +1,29 @@
-
-(* Copyright (C) 2002, HELM Team.
- * 
- * This file is part of HELM, an Hypertextual, Electronic
- * Library of Mathematics, developed at the Computer Science
- * Department, University of Bologna, Italy.
- * 
- * HELM is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * HELM is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+(*
+ * Copyright (C) 2003:
+ *    Stefano Zacchiroli <zack@cs.unibo.it>
+ *    for the HELM Team http://helm.cs.unibo.it/
+ *
+ *  This file is part of HELM, an Hypertextual, Electronic
+ *  Library of Mathematics, developed at the Computer Science
+ *  Department, University of Bologna, Italy.
+ *
+ *  HELM is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  as published by the Free Software Foundation; either version 2
+ *  of the License, or (at your option) any later version.
+ *
+ *  HELM is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with HELM; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ *  MA  02111-1307, USA.
  *
- * You should have received a copy of the GNU General Public License
- * along with HELM; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA  02111-1307, USA.
- * 
- * For details, see the HELM World-Wide-Web page,
- * http://cs.unibo.it/helm/.
+ *  For details, see the HELM World-Wide-Web page,
+ *  http://helm.cs.unibo.it/
  *)
 
 open Printf;;
@@ -50,22 +52,23 @@ let string_of_priority = function
   | `Info     -> "INFO"
   | `Debug    -> "DEBUG"
 
-class sysLogger ?(level: priority = `Notice) () =
+class sysLogger ?(level: priority = `Notice) ?(outchan = stderr) () =
   object (self)
-    inherit Uwobo_common.threadSafe
-    initializer
-      print_endline (sprintf "Logger started with level %s" (string_of_priority level))
     val level_no = int_of_priority level
     val mutable enabled = false
     method level = level
     method levelNo = level_no
-    method enable = self#doCritical (lazy (enabled <- true))
-    method disable = self#doCritical (lazy (enabled <- false))
+    method enable = enabled <- true
+    method disable = enabled <- false
     method log (prio: priority) msg =
-      self#doCritical (lazy (
-        if enabled && (int_of_priority prio <= level_no) then
-          prerr_endline (sprintf ("[UWOBO] %s: %s") (string_of_priority prio) msg)
-      ))
+      let tm = Unix.localtime (Unix.time ()) in
+      if enabled && (int_of_priority prio <= level_no) then begin
+        fprintf outchan ("[UWOBO %02d/%02d/%4d %02d:%02d:%02d] %s: %s\n")
+          tm.Unix.tm_mday (tm.Unix.tm_mon + 1) (tm.Unix.tm_year + 1900)
+          tm.Unix.tm_hour tm.Unix.tm_min tm.Unix.tm_sec
+          (string_of_priority prio) msg;
+        flush outchan
+      end
   end
 
   (** non thread safe, a processingLogger is usually instantied locally for each
index a250f655d9370bce00a36878a67ed43312212ba9..b05cdda08a8a1898d6f5c7c82cb0d838977d0f68 100644 (file)
@@ -1,27 +1,29 @@
-
-(* Copyright (C) 2002, HELM Team.
- * 
- * This file is part of HELM, an Hypertextual, Electronic
- * Library of Mathematics, developed at the Computer Science
- * Department, University of Bologna, Italy.
- * 
- * HELM is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- * 
- * HELM is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+(*
+ * Copyright (C) 2003:
+ *    Stefano Zacchiroli <zack@cs.unibo.it>
+ *    for the HELM Team http://helm.cs.unibo.it/
+ *
+ *  This file is part of HELM, an Hypertextual, Electronic
+ *  Library of Mathematics, developed at the Computer Science
+ *  Department, University of Bologna, Italy.
+ *
+ *  HELM is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  as published by the Free Software Foundation; either version 2
+ *  of the License, or (at your option) any later version.
+ *
+ *  HELM is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with HELM; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ *  MA  02111-1307, USA.
  *
- * You should have received a copy of the GNU General Public License
- * along with HELM; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA  02111-1307, USA.
- * 
- * For details, see the HELM World-Wide-Web page,
- * http://cs.unibo.it/helm/.
+ *  For details, see the HELM World-Wide-Web page,
+ *  http://helm.cs.unibo.it/
  *)
 
 type priority = [
@@ -35,10 +37,14 @@ type priority = [
   | `Debug    (* debug-level message *)
 ]
 
-  (** @param level minimum level of priority that will be reported, msg with
-  priority less than this will be ignored *)
+  (**
+  Warning: logging is disabled by default, you have to invoke #enable method
+  before being able to log anything.
+  @param level minimum level of priority that will be reported, msg with
+  priority less than this will be ignored
+  @param outchan output channel on which output log messages *)
 class sysLogger:
-  ?level: priority ->
+  ?level: priority -> ?outchan: out_channel ->
   unit ->
     object
       method level: priority