sig
  type print_func = string -> unit
  val set_print_handler : (string -> unit) -> Glib.Message.print_func
  type log_level =
    [ `CRITICAL
    | `DEBUG
    | `ERROR
    | `FLAG_FATAL
    | `FLAG_RECURSION
    | `INFO
    | `MESSAGE
    | `WARNING ]
  val log_level : Glib.Message.log_level -> 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 handle_criticals : domain:string -> unit
end