sig
  module Open_option :
    sig
      type t = PID | CONS | ODELAY | NDELAY | NOWAIT | PERROR
      val t_of_sexp : Sexplib.Sexp.t -> t
      val sexp_of_t : t -> Sexplib.Sexp.t
    end
  module Facility :
    sig
      type t =
          KERN
        | USER
        | MAIL
        | DAEMON
        | AUTH
        | SYSLOG
        | LPR
        | NEWS
        | UUCP
        | CRON
        | AUTHPRIV
        | FTP
        | LOCAL0
        | LOCAL1
        | LOCAL2
        | LOCAL3
        | LOCAL4
        | LOCAL5
        | LOCAL6
        | LOCAL7
      val t_of_sexp : Sexplib.Sexp.t -> t
      val sexp_of_t : t -> Sexplib.Sexp.t
    end
  module Level :
    sig
      type t = EMERG | ALERT | CRIT | ERR | WARNING | NOTICE | INFO | DEBUG
      val all : t list
      val of_string : string -> t
      val to_string : t -> string
      val t_of_sexp : Sexplib.Sexp.t -> t
      val sexp_of_t : t -> Sexplib.Sexp.t
      val compare : t -> t -> int
    end
  val setlogmask :
    ?allowed_levels:Level.t list ->
    ?from_level:Level.t -> ?to_level:Level.t -> unit -> unit
  val openlog :
    ?id:string ->
    ?options:Open_option.t list -> ?facility:Facility.t -> unit -> unit
  val syslog : ?facility:Facility.t -> ?level:Level.t -> string -> unit
  val syslogf :
    ?facility:Facility.t ->
    ?level:Level.t -> ('a, unit, string, unit) format4 -> 'a
  val closelog : unit -> unit
end