6 let loggers = [ "parsing";
16 let active_loggers : (t, int) Hashtbl.t = Hashtbl.create 17
17 let margin = List.fold_left (fun m l -> max m (String.length l)) 0 loggers
18 let available () = loggers
20 let is_logger s = List.mem s loggers
21 let level s = try Hashtbl.find active_loggers s with Not_found -> 0
22 let is_active s = Hashtbl.mem active_loggers s
23 let activate s lvl = if not (is_active s) then Hashtbl.add active_loggers s lvl
24 let deactivate s = Hashtbl.remove active_loggers s
26 let logger_output = ref err_formatter
27 let set_output f = logger_output := f
32 pp_open_hovbox !logger_output (margin + 3);
33 fprintf !logger_output "%-.*s : " margin t;
35 pp_close_box !logger_output ();
36 fprintf !logger_output "@?@\n";
40 ifprintf !logger_output fmt
49 let _verbose = ref false
50 let set_verbose b = _verbose := b
52 if !_verbose then begin