功能

GLiblog_set_handler

声明 [src]

guint
g_log_set_handler (
  const gchar* log_domain,
  GLogLevelFlags log_levels,
  GLogFunc log_func,
  gpointer user_data
)

说明 [src]

设置域和一组日志级别的日志处理程序。

要处理致命消息和递归消息,log_levels 参数必须与 G_LOG_FLAG_FATALG_LOG_FLAG_RECURSION 字节标志结合使用。

请注意,因为 G_LOG_LEVEL_ERROR 日志级别始终很致命,如果你想要为此日志级别设置处理程序,必须将其与 G_LOG_FLAG_FATAL 结合使用。

如果启用了结构化日志记录,此功能不起作用;请参阅 使用结构化日志记录

log_domain 参数可以设置为 NULL 或空字符串,以使用默认应用程序域。

以下是对默认域中所有警告消息添加日志处理程序的示例

g_log_set_handler (NULL, G_LOG_LEVEL_WARNING | G_LOG_FLAG_FATAL
                   | G_LOG_FLAG_RECURSION, my_log_handler, NULL);

以下示例为 GTK 中的所有严重消息添加日志处理程序

g_log_set_handler ("Gtk", G_LOG_LEVEL_CRITICAL | G_LOG_FLAG_FATAL
                   | G_LOG_FLAG_RECURSION, my_log_handler, NULL);

以下示例为 GLib 中的所有消息添加日志处理程序

g_log_set_handler ("GLib", G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL
                   | G_LOG_FLAG_RECURSION, my_log_handler, NULL);

此功能不直接提供给语言绑定。

此功能的实现由语言绑定中的 g_log_set_handler_full() 提供。

参数

log_domain

类型: const gchar*

日志域应用程序域。

参数可以是 NULL
数据归函数的调用者所有。
该值是 NUL 终止的 UTF-8 字符串。
log_levels

类型: GLogLevelFlags

要为其应用日志处理程序的日志级别。要同时处理致命消息和递归消息,将日志级别与 G_LOG_FLAG_FATALG_LOG_FLAG_RECURSION 字节标志结合使用。

log_func

类型: GLogFunc

日志处理程序函数。

user_data

类型: gpointer

传递给日志处理程序的数据。

参数可以是 NULL
数据归函数的调用者所有。

返回值

类型: guint

新处理程序的 ID。