sig
  module Open_option :
    sig
      type t = PID | CONS | ODELAY | NDELAY | NOWAIT | PERROR
      val t_of_sexp : Sexplib.Sexp.t -> Syslog.Open_option.t
      val sexp_of_t : Syslog.Open_option.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 -> Syslog.Facility.t
      val sexp_of_t : Syslog.Facility.t -> Sexplib.Sexp.t
    end
  module Level :
    sig
      type t = EMERG | ALERT | CRIT | ERR | WARNING | NOTICE | INFO | DEBUG
      val all : Syslog.Level.t list
      val of_string : string -> t
      val to_string : t -> string
      val t_of_sexp : Sexplib.Sexp.t -> Syslog.Level.t
      val sexp_of_t : Syslog.Level.t -> Sexplib.Sexp.t
      val compare : Syslog.Level.t -> Syslog.Level.t -> int
    end
  val setlogmask :
    ?allowed_levels:Syslog.Level.t list ->
    ?from_level:Syslog.Level.t -> ?to_level:Syslog.Level.t -> unit -> unit
  val openlog :
    ?id:string ->
    ?options:Syslog.Open_option.t list ->
    ?facility:Syslog.Facility.t -> unit -> unit
  val syslog :
    ?facility:Syslog.Facility.t -> ?level:Syslog.Level.t -> string -> unit
  val syslogf :
    ?facility:Syslog.Facility.t ->
    ?level:Syslog.Level.t ->
    ('a, unit, string, unit) Pervasives.format4 -> 'a
  val closelog : unit -> unit
end