X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fuwobo%2Fsrc%2Focaml%2Fuwobo_logger.ml;h=3a197041c220a39ba54992a4de800c314f82667b;hb=3ef5711d7e58aa3157e3bb7dffea114e207be39e;hp=b7e4239a6c03df29b83160e38f2b7dfd2fa1de55;hpb=b765ffc60cbfa17e81e2985a9562d792fdce4a69;p=helm.git diff --git a/helm/uwobo/src/ocaml/uwobo_logger.ml b/helm/uwobo/src/ocaml/uwobo_logger.ml index b7e4239a6..3a197041c 100644 --- a/helm/uwobo/src/ocaml/uwobo_logger.ml +++ b/helm/uwobo/src/ocaml/uwobo_logger.ml @@ -1,4 +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. + * + * 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/. + *) + open Printf;; type priority = [ @@ -26,24 +51,27 @@ let string_of_priority = function | `Debug -> "DEBUG" class sysLogger ?(level: priority = `Notice) () = - object + 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 enable = enabled <- true - method disable = enabled <- false + method level = level + method levelNo = level_no + method enable = self#doCritical (lazy (enabled <- true)) + method disable = self#doCritical (lazy (enabled <- false)) method log (prio: priority) msg = - if enabled && (int_of_priority prio <= level_no) then - prerr_endline (sprintf ("%s: %s") (string_of_priority prio) msg) + self#doCritical (lazy ( + if enabled && (int_of_priority prio <= level_no) then + prerr_endline (sprintf ("[UWOBO] %s: %s") (string_of_priority prio) msg) + )) end + (** non thread safe, a processingLogger is usually instantied locally for each + thread *) class processingLogger = - let html_escape s = (* TODO too naive, use Nethtml.encode instead *) - Pcre.replace ~pat:"<" ~templ:"<" - (Pcre.replace ~pat:">" ~templ:">" - (Pcre.replace ~pat:"&" ~templ:"&" s)) - in + let html_escape = Netencoding.Html.encode ~in_enc:`Enc_iso88591 () in fun () -> object val mutable log_lines: string list = [] @@ -52,8 +80,6 @@ class processingLogger = method asHtml = sprintf "\n%s\n" - (String.concat - "
\n" - (List.map html_escape (List.rev log_lines))) + (String.concat "
\n" (List.map html_escape (List.rev log_lines))) end