Message Logging versatile support for logging messages with different levels of importance. These functions provide support for logging error messages or messages used for debugging. There are several built-in levels of messages, defined in #GLogLevelFlags. These can be extended with user-defined levels. Defines the log domain. For applications, this is typically left as the default %NULL (or "") domain. Libraries should define this so that any messages which they log can be differentiated from messages from other libraries and application code. But be careful not to define it in any public header files. For example, GTK+ uses this in its Makefile.am: INCLUDES = -DG_LOG_DOMAIN=\"Gtk\" GLib log levels that are considered fatal by default. Log level shift offset for user defined log levels (0-7 are used by GLib). Specifies the prototype of log handler functions. @log_domain: the log domain of the message. @log_level: the log level of the message (including the fatal and recursion flags). @message: the message to process. @user_data: user data, set in g_log_set_handler(). Flags specifying the level of log messages. @G_LOG_FLAG_RECURSION: @G_LOG_FLAG_FATAL: @G_LOG_LEVEL_ERROR: @G_LOG_LEVEL_CRITICAL: @G_LOG_LEVEL_WARNING: @G_LOG_LEVEL_MESSAGE: @G_LOG_LEVEL_INFO: @G_LOG_LEVEL_DEBUG: @G_LOG_LEVEL_MASK: Logs an error or debugging message. If the log level has been set as fatal, the abort() function is called to terminate the program. @log_domain: the log domain, usually #G_LOG_DOMAIN. @log_level: the log level, either from #GLogLevelFlags or a user-defined level. @format: the message format. See the printf() documentation. @Varargs: the parameters to insert into the format string. Logs an error or debugging message. If the log level has been set as fatal, the abort() function is called to terminate the program. @log_domain: the log domain. @log_level: the log level. @format: the message format. See the printf() documentation. @args: the parameters to insert into the format string. A convenience function/macro to log a normal message. @...: format string, followed by parameters to insert into the format string (as with printf()) A convenience function/macro to log a warning message. @...: format string, followed by parameters to insert into the format string (as with printf()) Logs a "critical warning" (#G_LOG_LEVEL_CRITICAL). It's more or less application-defined what constitutes a critical vs. a regular warning. You could call g_log_set_always_fatal() to make critical warnings exit the program, then use g_critical() for fatal errors, for example. @...: format string, followed by parameters to insert into the format string (as with printf()) A convenience function/macro to log an error message. Error messages are always fatal, resulting in a call to abort() to terminate the application. This function will result in a core dump; don't use it for errors you expect. Using this function indicates a bug in your program, i.e. an assertion failure. @...: the parameters to insert into the format string. Sets the log handler for a domain and a set of log levels. To handle fatal and recursive messages the @log_levels parameter must be combined with the #G_LOG_FLAG_FATAL and #G_LOG_FLAG_RECURSION bit flags. Note that since the #G_LOG_LEVEL_ERROR log level is always fatal, if you want to set a handler for this log level you must combine it with #G_LOG_FLAG_FATAL. Adding a log handler for all warning messages in the default (application) domain g_log_set_handler (NULL, G_LOG_LEVEL_WARNING | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION, my_log_handler, NULL); Adding a log handler for all critical messages from GTK+ g_log_set_handler ("Gtk", G_LOG_LEVEL_CRITICAL | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION, my_log_handler, NULL); Adding a log handler for <emphasis>all</emphasis> messages from GLib g_log_set_handler ("GLib", G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION, my_log_handler, NULL); @log_domain: the log domain, or %NULL for the default "" application domain. @log_levels: the log levels to apply the log handler for. To handle fatal and recursive messages as well, combine the log levels with the #G_LOG_FLAG_FATAL and #G_LOG_FLAG_RECURSION bit flags. @log_func: the log handler function. @user_data: data passed to the log handler. @Returns: the id of the new handler. Removes the log handler. @log_domain: the log domain. @handler_id: the id of the handler, which was returned in g_log_set_handler(). Sets the message levels which are always fatal, in any log domain. When a message with any of these levels is logged the program terminates. You can only set the levels defined by GLib to be fatal. %G_LOG_LEVEL_ERROR is always fatal. @fatal_mask: the mask containing bits set for each level of error which is to be fatal. @Returns: the old fatal mask. Sets the log levels which are fatal in the given domain. %G_LOG_LEVEL_ERROR is always fatal. @log_domain: the log domain. @fatal_mask: the new fatal mask. @Returns: the old fatal mask for the log domain. The default log handler. This is used if no log handler has been set for the particular log domain and log level combination. It outputs the message to stderr or stdout and if the log level is fatal it calls abort(). stderr is used for levels %G_LOG_LEVEL_ERROR, %G_LOG_LEVEL_CRITICAL, and %G_LOG_LEVEL_WARNING. stdout is used for the rest. @log_domain: the log domain of the message. @log_level: the level of the message. @message: the message. @unused_data: data passed from g_log() which is unused.