since: 2.50


g_log_writer_default (
  GLogLevelFlags log_level,
  const GLogField* fields,
  gsize n_fields,
  gpointer user_data


Format a structured log message and output it to the default log destination for the platform.

On Linux, this is typically the systemd journal, falling back to stdout or stderr if running from the terminal or if output is being redirected to a file.

Support for other platform-specific logging mechanisms may be added in future. Distributors of GLib may modify this function to impose their own (documented) platform-specific log writing policies.

This is suitable for use as a GLogWriterFunc, and is the default writer used if no other is set using g_log_set_writer_func().

As with g_log_default_handler(), this function drops debug and informational messages unless their log domain (or all) is listed in the space-separated G_MESSAGES_DEBUG environment variable, or set at runtime by g_log_writer_default_set_debug_domains().

g_log_writer_default() uses the mask set by g_log_set_always_fatal() to determine which messages are fatal. When using a custom writer function instead it is up to the writer function to determine which log messages are fatal.

Available since: 2.50



Type: GLogLevelFlags

Log level, either from GLogLevelFlags, or a user-defined level.


Type: An array of GLogField

Key–value pairs of structured data forming the log message.

The length of the array is specified in the n_fields argument.
The data is owned by the caller of the function.

Type: gsize

Number of elements in the fields array.


Type: gpointer

User data passed to g_log_set_writer_func()

The argument can be NULL.
The data is owned by the caller of the function.

Return value

Type: GLogWriterOutput

GLogWriterOutput on success, GLogWriterOutput otherwise.