X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=helm%2Fuwobo%2Fsrc%2Focaml%2Fuwobo_logger.ml;h=c2f69eecc80213b415b572450854d297c9c9e472;hb=b1fb6b8e1767d775bc452303629e95941d142bea;hp=2907b0726df0058b15d828a720e51112d6e7c6ec;hpb=2a5683cf113dc524f685af57cf7ae2dda3190467;p=helm.git diff --git a/helm/uwobo/src/ocaml/uwobo_logger.ml b/helm/uwobo/src/ocaml/uwobo_logger.ml index 2907b0726..c2f69eecc 100644 --- a/helm/uwobo/src/ocaml/uwobo_logger.ml +++ b/helm/uwobo/src/ocaml/uwobo_logger.ml @@ -51,25 +51,24 @@ 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 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 ("%s: %s") (string_of_priority prio) msg) + )) end -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 - fun () -> + (** non thread safe, a processingLogger is usually instantied locally for each + thread *) +class processingLogger () = object val mutable log_lines: string list = [] method log msg = log_lines <- msg :: log_lines @@ -79,6 +78,6 @@ class processingLogger = "\n%s\n" (String.concat "
\n" - (List.map html_escape (List.rev log_lines))) + (List.map (Netencoding.Url.encode ~plus:false) (List.rev log_lines))) end