/// <summary> /// Sets the log handler for a domain and a set of log levels. /// </summary> /// <param name="logDomain">The log domain, or <see langword="null"/> for the default "" application domain.</param> /// <param name="flags">The log levels to apply the log handler for.</param> /// <param name="logFunc">The log handler function.</param> /// <returns>The id of the handler.</returns> public static uint SetLogHandler(string logDomain, Enums.LogLevelFlags flags, LogDelegate logFunc) { _nativeHandler ??= NativeCallback; var gch = GCHandle.Alloc(logFunc); var result = GLib.GLogSetHandler(logDomain, flags, _nativeHandler, (IntPtr)gch); _handlers.AddOrUpdate(result, gch, (k, v) => gch); return(result); }