sig
  type facility =
      [ `LOG_AUTH
      | `LOG_AUTHPRIV
      | `LOG_CONSOLE
      | `LOG_CRON
      | `LOG_DAEMON
      | `LOG_FTP
      | `LOG_KERN
      | `LOG_LOCAL0
      | `LOG_LOCAL1
      | `LOG_LOCAL2
      | `LOG_LOCAL3
      | `LOG_LOCAL4
      | `LOG_LOCAL5
      | `LOG_LOCAL6
      | `LOG_LOCAL7
      | `LOG_LPR
      | `LOG_MAIL
      | `LOG_NEWS
      | `LOG_NTP
      | `LOG_SECURITY
      | `LOG_SYSLOG
      | `LOG_USER
      | `LOG_UUCP ]
  type flag = [ `LOG_CONS | `LOG_PERROR | `LOG_PID ]
  type level =
      [ `LOG_ALERT
      | `LOG_CRIT
      | `LOG_DEBUG
      | `LOG_EMERG
      | `LOG_ERR
      | `LOG_INFO
      | `LOG_NOTICE
      | `LOG_WARNING ]
  type t
  val facility_of_string : string -> Syslog.facility
  val openlog :
    ?logpath:string ->
    ?facility:Syslog.facility ->
    ?flags:Syslog.flag list -> string -> Syslog.t
  val syslog :
    ?fac:Syslog.facility -> Syslog.t -> Syslog.level -> string -> unit
  val closelog : Syslog.t -> unit
end