Esempio n. 1
0
        /// <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);
        }