Пример #1
0
        /// <inheritdoc cref="NtCore.SetLogger"/>
        public void SetLogger(LogFunc func, LogLevel minLevel)
        {
            Logger logger = Logger.Instance;

            logger.SetLogger(func);
            logger.MinLevel = minLevel;
        }
Пример #2
0
        private static void DoCommand_NoTrans(LogFunc log, string connectionString, string sql, Action <SqlCommand> postAction, params object[] parameters)
        {
            try
            {
                using var connection = new SqlConnection(connectionString);

                sql           = ReplaceQuestionMark(sql);
                using var cmd = new SqlCommand(sql, connection);

                connection.Open();
                try
                {
                    AddParams_ReplaceQuestionMark(cmd, parameters);

                    postAction?.Invoke(cmd);
                }
                catch (Exception ex)
                {
                    log?.Invoke(ex, $"-@@ connectionString: '{connectionString}', sql: '{sql}' @@");
                    throw ex;
                }
            }
            catch (Exception ex)
            {
                log?.Invoke(ex, $"@@ connectionString: '{connectionString}', sql: '{sql}' @@");

                throw ex;
            }
        }
Пример #3
0
 public DBHelper(string connectionString, LogFunc log = null) : base(connectionString, log)
 {
     _AppLogTable   = new AppLogTable(connectionString, log);
     _CompanyTable  = new CompanyTable(connectionString, log);
     _MaterialTable = new MaterialTable(connectionString, log);
     _ReceiptTable  = new ReceiptTable(connectionString, log);
     _RecordTable   = new RecordTable(connectionString, log);
 }
Пример #4
0
            public static uint SetLogHandler(IntPtr logDomain, LogLevelFlags flags, LogFunc logFunc)
            {
                uint result = g_log_set_handler(logDomain, flags, LogFuncTrampoline, logFunc);

                EnsureHash();
                handlers[result] = logFunc;

                return(result);
            }
Пример #5
0
        /// <summary>
        /// Sets the logger to be used when an error is encountered by NetworkTables
        /// </summary>
        /// <param name="func">The function to use to log</param>
        /// <param name="minLevel">The minimum level required to log</param>
        public static void SetLogger(LogFunc func, LogLevel minLevel)
        {
#if CORE
            CoreMethods.SetLogger(func, minLevel);
#else
            Logger logger = Logger.Instance;
            logger.SetLogger(func);
            logger.MinLevel = minLevel;
#endif
        }
Пример #6
0
		public static uint SetLogHandler (string logDomain, LogLevelFlags flags, LogFunc logFunc)
		{
			IntPtr ndom = Marshaller.StringToPtrGStrdup (logDomain);
			uint result = g_log_set_handler (ndom, flags, logFunc, IntPtr.Zero);
			Marshaller.Free (ndom);
			EnsureHash ();
			handlers [result] = logFunc;

			return result;
		}
Пример #7
0
        public static uint SetLogHandler(string logDomain, LogLevelFlags flags, LogFunc logFunc)
        {
            IntPtr ndom   = Marshaller.StringToPtrGStrdup(logDomain);
            uint   result = g_log_set_handler(ndom, flags, LogFuncTrampoline, logFunc);

            Marshaller.Free(ndom);
            EnsureHash();
            handlers [result] = logFunc;

            return(result);
        }
Пример #8
0
        /// <summary>
        /// Assigns a method to be called whenever a log statement occurs in the internal
        /// network table library.
        /// </summary>
        /// <param name="func">The log function to assign.</param>
        /// <param name="minLevel">The minimum level to log.</param>
        public static void SetLogger(LogFunc func, LogLevel minLevel)
        {
            s_nativeLog = (level, file, line, msg) =>
            {
                string message  = ReadUTF8String(msg);
                string fileName = ReadUTF8String(file);

                func((LogLevel)level, fileName, (int)line, message);
            };

            Interop.NT_SetLogger(s_nativeLog, (uint)minLevel);
        }
Пример #9
0
        public static ValueTuple <UnmanagedLogFunc, IntPtr> CreateDelegate(LogFunc func, bool isAsync = false)
        {
            var data = new UnmanagedLogFuncFuncData {
                IsAsync         = isAsync,
                Func            = func,
                UnmanagedFunc   = UnmanagedFunc,
                UnmanagedNotify = null,
            };
            var gcHandle = GCHandle.Alloc(data);

            return(data.UnmanagedFunc, (IntPtr)gcHandle);
        }
Пример #10
0
        public static uint SetHandler(string logDomain, LogLevelFlags logLevels, LogFunc logFunc)
        {
            if (logFunc == null)
            {
                throw new ArgumentNullException(nameof(logFunc));
            }
            var logDomain_ = GMarshal.StringToUtf8Ptr(logDomain);

            var(logFunc_, destroy_, userData_) = UnmanagedLogFuncFactory.CreateNotifyDelegate(logFunc);
            var ret = g_log_set_handler_full(logDomain_, logLevels, logFunc_, userData_, destroy_);

            GMarshal.Free(logDomain_);
            return(ret);
        }
Пример #11
0
        static void NativeCallback(IntPtr log_domain_native, LogLevelFlags flags, IntPtr message_native, IntPtr user_data)
        {
            if (user_data == IntPtr.Zero)
            {
                return;
            }
            string   log_domain = Marshaller.Utf8PtrToString(log_domain_native);
            string   message    = Marshaller.Utf8PtrToString(message_native);
            GCHandle gch        = (GCHandle)user_data;
            LogFunc  func       = gch.Target as LogFunc;

            if (func != null)
            {
                func(log_domain, flags, message);
            }
        }
Пример #12
0
        public static uint SetLogHandler(string logDomain, LogLevelFlags flags, LogFunc logFunc)
        {
            if (native_handler == null)
            {
                native_handler = new LogFuncNative(NativeCallback);
            }

            IntPtr   ndom   = Marshaller.StringToPtrGStrdup(logDomain);
            GCHandle gch    = GCHandle.Alloc(logFunc);
            uint     result = g_log_set_handler(ndom, flags, native_handler, (IntPtr)gch);

            Marshaller.Free(ndom);
            EnsureHash();
            handlers [result] = gch;
            return(result);
        }
Пример #13
0
        /// <summary>
        /// Installs a default log handler which is used if no log handler
        /// has been set for the particular log domain and log level combination.
        /// </summary>
        /// <param name="logFunc">the log handler function</param>
        /// <returns>the previous default log handler</returns>
        public static LogFunc SetDefaultHandler(LogFunc logFunc)
        {
            if (_nativeHandler == null)
            {
                _nativeHandler = NativeCallback;
            }

            var prev = GLib.GLogSetDefaultHandler(_nativeHandler, (IntPtr)GCHandle.Alloc(logFunc));

            if (prev == null)
            {
                return(null);
            }
            var invoker = new Invoker(prev);

            return(invoker.Handler);
        }
Пример #14
0
        public static LogFunc SetDefaultHandler(LogFunc log_func)
        {
            if (native_handler == null)
            {
                native_handler = new LogFuncNative(NativeCallback);
            }

            LogFuncNative prev = g_log_set_default_handler(native_handler, (IntPtr)GCHandle.Alloc(log_func));

            if (prev == null)
            {
                return(null);
            }
            Invoker invoker = new Invoker(prev);

            return(invoker.Handler);
        }
Пример #15
0
        /// <summary>
        /// Adds a line to a text box, and treats it like a log.
        /// Should be thread safe.
        /// </summary>
        /// <param name="msg"></param>
        private void AddLogLine(TextBox box, string msg)
        {
            if (box.InvokeRequired)
            {
                object[] args = new object[1];
                args[0] = msg;
                LogFunc target = new LogFunc(AddLogLine);
                box.BeginInvoke(target, args);
                return;
            }
            List <String> lines = new List <string>(box.Lines);

            if (lines.Count > 2000)
            {
                int nremove = lines.Count - 2000;
                lines.RemoveRange(0, nremove);
            }
            lines.Add(msg);
            box.Lines = lines.ToArray();
        }
Пример #16
0
        private static bool TryConvertValue <T>(LogFunc log, object obj, out T outValue, T defaultValue = default(T))
        {
            try
            {
                if (obj == DBNull.Value)
                {
                    obj = null;
                }

                outValue = (T)Convert.ChangeType(obj, typeof(T));

                return(true);
            }
            catch (Exception ex)
            {
                log?.Invoke(ex, $"@type: '{typeof(T)}', obj: '{obj}'@");
                outValue = defaultValue;

                return(false);
            }
        }
Пример #17
0
        private static T?ConvertToNull <T>(LogFunc log, object obj) where T : struct
        {
            try
            {
                if (obj == DBNull.Value)
                {
                    obj = null;
                }

                if (obj == null)
                {
                    return(null);
                }

                return((T)Convert.ChangeType(obj, typeof(T)));
            }
            catch (Exception ex)
            {
                log?.Invoke(ex, $"@type: '{typeof(T)}', obj: '{obj}'@");

                return(null);
            }
        }
Пример #18
0
        public static void SetDefaultHandler(LogFunc logFunc)
        {
            if (logFunc == null)
            {
                throw new ArgumentNullException(nameof(logFunc));
            }
            var oldHandler = defaultHandler;

            if (logFunc == DefaultHandler)
            {
                g_log_set_default_handler(g_log_default_handler, IntPtr.Zero);
                defaultHandler = default(GCHandle);
            }
            else
            {
                var(logFunc_, userData_) = UnmanagedLogFuncFactory.CreateDelegate(logFunc);
                g_log_set_default_handler(logFunc_, userData_);
                defaultHandler = (GCHandle)userData_;
            }
            if (oldHandler.IsAllocated)
            {
                oldHandler.Free();
            }
        }
Пример #19
0
 public void SetDefaultLogger()
 {
     m_func = DefLogFunc;
 }
Пример #20
0
 public void SetLogger(LogFunc func)
 {
     m_func = func;
 }
Пример #21
0
 public static extern void LogCallback(LogFunc func);
Пример #22
0
 static extern uint g_log_set_default_handler(
     LogFunc log_func,
     IntPtr user_data);
Пример #23
0
		public static LogFunc SetDefaultHandler (LogFunc log_func)
		{
			if (native_handler == null)
				native_handler = new LogFuncNative (NativeCallback);

			LogFuncNative prev = g_log_set_default_handler (native_handler, (IntPtr) GCHandle.Alloc (log_func));
			if (prev == null)
				return null;
			Invoker invoker = new Invoker (prev);
			return invoker.Handler;
		}
Пример #24
0
 public static extern void SetLoger(LogFunc logFunc);
Пример #25
0
        protected SqlHelper(string connectionString, LogFunc log = null)
        {
            _ConnectionString = connectionString;

            _Log = log;
        }
 public MaterialTable(string connectionString, LogFunc log = null) : base(connectionString, log)
 {
 }
Пример #27
0
 private static extern void SetLogFunc(LogFunc f);
Пример #28
0
		public static uint SetLogHandler (string logDomain, LogLevelFlags flags, LogFunc logFunc)
		{
			if (native_handler == null)
				native_handler = new LogFuncNative (NativeCallback);

			IntPtr ndom = Marshaller.StringToPtrGStrdup (logDomain);
			GCHandle gch = GCHandle.Alloc (logFunc);
			uint result = g_log_set_handler (ndom, flags, native_handler, (IntPtr) gch);
			Marshaller.Free (ndom);
			EnsureHash ();
			handlers [result] = gch;
			return result;
		}
Пример #29
0
 static extern uint g_log_set_handler(IntPtr log_domain, LogLevelFlags flags, LogFunc2 log_func, LogFunc user_data);
Пример #30
0
 public void SetLoggerFunc(LogFunc logFunc)
 {
     log = logFunc;
 }
Пример #31
0
        public static ValueTuple <UnmanagedLogFunc, UnmanagedDestroyNotify, IntPtr> CreateNotifyDelegate(LogFunc func)
        {
            var data = new UnmanagedLogFuncFuncData {
                IsAsync         = false,
                Func            = func,
                UnmanagedFunc   = UnmanagedFunc,
                UnmanagedNotify = UnmanagedNotify,
            };
            var gcHandle = GCHandle.Alloc(data);

            return(data.UnmanagedFunc, data.UnmanagedNotify, (IntPtr)gcHandle);
        }
Пример #32
0
 public RecordTable(string connectionString, LogFunc log = null) : base(connectionString, log)
 {
 }
Пример #33
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, LogFunc logFunc)
        {
            if (_nativeHandler == null)
            {
                _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);
        }
Пример #34
0
 static extern uint g_log_set_handler(IntPtr log_domain, LogLevelFlags flags, LogFunc log_func, IntPtr user_data);
Пример #35
0
 public CompanyTable(string connectionString, LogFunc log = null) : base(connectionString, log)
 {
 }