sig
  type log_level =
      [ `CRITICAL
      | `DEBUG
      | `ERROR
      | `FLAG_FATAL
      | `FLAG_RECURSION
      | `INFO
      | `MESSAGE
      | `WARNING ]
  val log_level :
    [< `CRITICAL
     | `CUSTOM of int
     | `DEBUG
     | `ERROR
     | `FLAG_FATAL
     | `FLAG_RECURSION
     | `INFO
     | `MESSAGE
     | `WARNING ] ->
    int
  type log_handler
  val set_log_handler :
    ?domain:string ->
    levels:Glib.Message.log_level list ->
    (level:int -> string -> unit) -> Glib.Message.log_handler
  val remove_log_handler : Glib.Message.log_handler -> unit
  val set_always_fatal : Glib.Message.log_level list -> unit
  val set_fatal_mask :
    ?domain:string ->
    [ `CRITICAL
    | `CUSTOM of int
    | `DEBUG
    | `ERROR
    | `FLAG_FATAL
    | `FLAG_RECURSION
    | `INFO
    | `MESSAGE
    | `WARNING ] list -> unit
  val log :
    ?domain:string ->
    [ `CRITICAL
    | `CUSTOM of int
    | `DEBUG
    | `ERROR
    | `FLAG_FATAL
    | `FLAG_RECURSION
    | `INFO
    | `MESSAGE
    | `WARNING ] -> ('a, unit, string, unit) Stdlib.format4 -> 'a
end