Skip to content

Commit 76168d7

Browse files
authored
Merge pull request #177 from jrochel/logging
fix logging issues
2 parents 66f9636 + d3ad5ac commit 76168d7

File tree

3 files changed

+20
-11
lines changed

3 files changed

+20
-11
lines changed

src/baselib/ocsigen_commandline.ml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ let cmdline : unit =
2525
"Alternate config file (default "^ Ocsigen_config.get_config_file() ^")");
2626
("--config", Arg.String set_configfile,
2727
"Alternate config file (default "^ Ocsigen_config.get_config_file() ^")");
28-
("-s", Arg.Unit set_silent, "Silent mode (error messages in errors.log only)");
29-
("--silent", Arg.Unit set_silent, "Silent mode (error messages in errors.log only)");
28+
("-s", Arg.Unit set_silent, "silent mode (no logging to console; does not affect *.log files)");
29+
("--silent", Arg.Unit set_silent, "silent mode (no logging to console; does not affect *.log files)");
3030
("-p", Arg.String set_pidfile, "Specify a file where to write the PIDs of servers");
3131
("--pidfile", Arg.String set_pidfile, "Specify a file where to write the PIDs of servers");
3232
("-v", Arg.Unit set_verbose, "Verbose mode (notice)");

src/baselib/ocsigen_config.ml.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ let set_syslog_facility f = syslog_facility := f; logdir := None
8080
let set_configfile s = config_file := s
8181
let set_pidfile s = pidfile := Some s
8282
let set_mimefile s = mimefile := s
83-
let () = Lwt_log.add_rule "*" Lwt_log.Warning (* without --verbose *)
83+
let () = Lwt_log.add_rule "ocsigen:*" Lwt_log.Warning (* without --verbose *)
8484
let set_verbose () =
8585
verbose := true;
8686
Lwt_log.add_rule "ocsigen:*" Lwt_log.Notice

src/baselib/ocsigen_messages.ml

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,19 @@ let warning_file = "warnings.log"
2525
let error_file = "errors.log"
2626

2727

28-
let access_sect = Lwt_log.Section.make "access"
28+
let access_sect = Lwt_log.Section.make "ocsigen:access"
2929

3030
let full_path f = Filename.concat (Ocsigen_config.get_logdir ()) f
3131

3232
let error_log_path () = full_path error_file
3333

3434
let stderr = Lwt_log.channel `Keep Lwt_io.stderr ()
35+
let stdout = Lwt_log.channel `Keep Lwt_io.stdout ()
3536

3637
let loggers = ref []
3738

39+
let access_logger = ref Lwt_log_core.null
40+
3841
let open_files ?(user = Ocsigen_config.get_user ()) ?(group = Ocsigen_config.get_group ()) () =
3942

4043
(* CHECK: we are closing asynchronously! That should be ok, though. *)
@@ -66,6 +69,7 @@ let open_files ?(user = Ocsigen_config.get_user ()) ?(group = Ocsigen_config.get
6669
in
6770

6871
open_log access_file >>= fun acc ->
72+
access_logger := acc;
6973
open_log warning_file >>= fun war ->
7074
open_log error_file >>= fun err ->
7175
loggers := [acc; war; err];
@@ -74,14 +78,16 @@ let open_files ?(user = Ocsigen_config.get_user ()) ?(group = Ocsigen_config.get
7478
Lwt_log.broadcast
7579
[Lwt_log.dispatch
7680
(fun sect lev ->
77-
if sect = access_sect then acc else
78-
match lev with
79-
| Lwt_log.Error | Lwt_log.Fatal -> err
80-
| Lwt_log.Warning -> war
81-
| _ -> Lwt_log.null);
81+
match lev with
82+
| Lwt_log.Error | Lwt_log.Fatal -> err
83+
| Lwt_log.Warning -> war
84+
| _ -> Lwt_log.null);
8285
Lwt_log.dispatch
8386
(fun sect lev ->
84-
if Ocsigen_config.get_silent () then Lwt_log.null else stderr)];
87+
if Ocsigen_config.get_silent () then Lwt_log.null else
88+
match lev with
89+
| Lwt_log.Warning | Lwt_log.Error | Lwt_log.Fatal -> stderr
90+
| _ -> stdout)];
8591

8692
let gid = match group with
8793
| None -> Unix.getgid ()
@@ -109,7 +115,10 @@ let open_files ?(user = Ocsigen_config.get_user ()) ?(group = Ocsigen_config.get
109115

110116
(****)
111117

112-
let accesslog s = Lwt_log.ign_notice ~section:access_sect s
118+
let accesslog s =
119+
(* not really fatal, but log in all cases; does not affect console *)
120+
Lwt_log.ign_fatal ~section:access_sect ~logger:!access_logger s;
121+
Lwt_log.ign_notice ~section:access_sect s
113122

114123
let errlog ?section s = Lwt_log.ign_error ?section s
115124

0 commit comments

Comments
 (0)