]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/uwobo/uwobo.ml
reload/remove all stylesheets now prints also which stylesheets are
[helm.git] / helm / uwobo / uwobo.ml
index 6b18f8bdd14d4295caf62a216c8a9509f5776fd2..9dc9b539405f4b5b08480249d5d5ad3edb1e0d9a 100644 (file)
@@ -30,19 +30,22 @@ open Printf;;
 open Uwobo_common;;
 
  (* debugging settings *)
-let debug = false;;
-let debug_level = `Notice;;
-let debug_print s = if debug then prerr_endline s;;
-Http_common.debug := false;;
-let logfile = Some "uwobo.log";;  (* relative to execution dir *)
-let logfile_perm = 0o640;;
+let debug = false ;;
+let debug_level = `Notice ;;
+let debug_print s = if debug then prerr_endline s ;;
+Http_common.debug := false ;;
 
   (* other settings *)
-let daemon_name = "UWOBO OCaml";;
-let default_port = 58080;;
-let port_env_var = "UWOBO_PORT";;
-let default_media_type = "text/html";;
-let default_encoding = "utf8";;
+let daemon_name = "UWOBO OCaml" ;;
+let default_log_file = "uwobo.log" ;; (* relative to execution dir *)
+let default_port = 58080 ;;
+let port_env_var = "UWOBO_PORT" ;;
+let default_media_type = "text/html" ;;
+let default_encoding = "utf8" ;;
+let logfile =
+  Some (try Sys.getenv "UWOBO_LOG_FILE" with Not_found -> default_log_file)
+;;
+let logfile_perm = 0o640 ;;
 let port =
   try
     int_of_string (Sys.getenv port_env_var)
@@ -59,7 +62,8 @@ let respond_html body outchan =
 
   (** perform an 'action' that can be applied to a list of keys or, if no keys
   was given, to all keys *)
-let act_on_keys keys_param styles logger per_key_action all_keys_action logmsg
+let act_on_keys
+  keys_param styles logger per_key_action all_keys_action all_keys logmsg
 =
   let keys =
     try
@@ -68,13 +72,16 @@ let act_on_keys keys_param styles logger per_key_action all_keys_action logmsg
   in
   match keys with
   | [] -> (* no key provided, act on all stylesheets *)
-      logger#log (sprintf "%s all stylesheets ..." logmsg);
-      (try all_keys_action () with e -> logger#log (Printexc.to_string e))
+      logger#log (sprintf "%s all stylesheets (keys = %s) ..."
+        logmsg (String.concat ", " all_keys));
+      (try all_keys_action () with e -> logger#log (Printexc.to_string e));
+      logger#log (sprintf "Done! (all stylesheets)")
   | keys ->
       List.iter
         (fun key -> (* act on a single stylesheet *)
           logger#log (sprintf "%s stylesheet %s" logmsg key);
-          (try per_key_action key with e -> logger#log (Printexc.to_string e)))
+          (try per_key_action key with e -> logger#log (Printexc.to_string e));
+          logger#log (sprintf "Done! (stylesheet %s)" key))
         keys
 ;;
 
@@ -231,8 +238,11 @@ let main () =
     (* (1) system logger *)
   let logger_outchan =
     match logfile with
-    | None -> stderr
+    | None ->
+        debug_print "Logging to standard error";
+        stderr
     | Some f ->
+        debug_print (sprintf "Logging to file %s" f);
         open_out_gen [Open_wronly; Open_append; Open_creat] logfile_perm f
   in
   let syslogger =
@@ -318,6 +328,7 @@ let main () =
                   arg styles logger
                   (fun key -> log_libxslt_msgs logger (styles#remove key))
                   (fun () -> log_libxslt_msgs logger styles#removeAll)
+                  styles#keys
                   "removing";
                 output_string res_pipe (logger#asHtml);
                 raise Restart_HTTP_daemon
@@ -329,6 +340,7 @@ let main () =
                   arg styles logger
                   (fun key -> log_libxslt_msgs logger (styles#reload key))
                   (fun () -> log_libxslt_msgs logger styles#reloadAll)
+                  styles#keys
                   "reloading";
                 output_string res_pipe (logger#asHtml);
                 raise Restart_HTTP_daemon