X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=src%2Flogger.ml;h=1b123f172e85a11322e36101c20a4f0847019413;hb=fcdb6b70f80c4777e319917e9318fc8d54e3a28f;hp=a2063829ba9f75d670aefd7effbea37b7898c872;hpb=7c4c61cec6fe1ae3a1b83a59b17ce90adcfe9b0b;p=SXSI%2Fxpathcomp.git diff --git a/src/logger.ml b/src/logger.ml index a206382..1b123f1 100644 --- a/src/logger.ml +++ b/src/logger.ml @@ -5,7 +5,7 @@ type level = int let loggers = [ "top-down-run"; "top-down-approx"; "result-set"; "level2-jit"; "res-jit"; "grammar"; "twopass";"transition" ] let active_loggers : (t, int) Hashtbl.t = Hashtbl.create 17 - +let margin = List.fold_left (fun m l -> max m (String.length l)) 0 loggers let available () = loggers let is_logger s = List.mem s loggers @@ -17,9 +17,22 @@ let deactivate s = Hashtbl.remove active_loggers s let logger_output = ref err_formatter let set_output f = logger_output := f -let log t l s = +let log t l fmt = if l <= level t then begin - fprintf !logger_output "%s: " t; - fprintf !logger_output "%s%!" s + pp_open_hovbox !logger_output (margin + 3); + fprintf !logger_output "%-.*s : " margin t; + kfprintf (fun _ -> + pp_close_box !logger_output (); + fprintf !logger_output "@?@\n"; + ) !logger_output fmt end + else + ifprintf !logger_output fmt + +let print ppf fmt = + pp_open_hovbox ppf 0; + kfprintf (fun _ -> + pp_close_box ppf (); + fprintf ppf "@?") + ppf fmt