Beispiel #1
0
        public override void Log(TIPLogLevel level, string file, string function, int line, string message)
        {
            string levelString = null;

            switch (level)
            {
            case TIPLogLevel.Emergency:
            case TIPLogLevel.Alert:
            case TIPLogLevel.Critical:
            case TIPLogLevel.Error:
                levelString = "ERR";
                break;

            case TIPLogLevel.Warning:
                levelString = "WRN";
                break;

            case TIPLogLevel.Notice:
            case TIPLogLevel.Information:
                levelString = "INF";
                break;

            case TIPLogLevel.Debug:
                levelString = "DBG";
                break;
            }

            Debug.WriteLine($"[{levelString}]: {message}");
        }
Beispiel #2
0
        private static void LogInternal(TIPLogLevel level, string format, params object[] args)
        {
            var logger   = TIPGlobalConfiguration.SharedInstance.Logger;
            var nsLogger = logger as NSObject;

            if (logger != null && (nsLogger == null || !nsLogger.RespondsToSelector(tip_canLogWithLevel) || logger.CanLog(level)))
            {
                var stacktrace = new StackTrace(true);
                var frame      = stacktrace.FrameCount >= 2 ? stacktrace.GetFrame(2) : null;

                var file     = frame?.GetFileName();
                var method   = frame?.GetMethod();
                var function = method == null ? null : method.DeclaringType.FullName + ": " + method.ToString();
                var line     = frame?.GetFileLineNumber();

                var message = string.Format(format, args);

                logger.Log(level, file ?? string.Empty, function ?? string.Empty, line ?? 0, message, IntPtr.Zero);
            }
        }
Beispiel #3
0
 public override bool CanLog(TIPLogLevel level) => true;         // we want everything!
Beispiel #4
0
 public static void Log(TIPLogLevel level, string format, params object[] args) => LogInternal(level, format, args);