コード例 #1
0
        public static void HandleAggregateException(AggregateException aex, PodeListener listener = default(PodeListener), PodeLoggingLevel level = PodeLoggingLevel.Error)
        {
            aex.Handle((ex) =>
            {
                if (ex is IOException || ex is OperationCanceledException)
                {
                    return(true);
                }

                PodeHelpers.WriteException(ex, listener, level);
                return(false);
            });
        }
コード例 #2
0
        public static void WriteErrorMessage(string message, PodeListener listener = default(PodeListener), PodeLoggingLevel level = PodeLoggingLevel.Error, PodeContext context = default(PodeContext))
        {
            // do nothing if no message
            if (string.IsNullOrWhiteSpace(message))
            {
                return;
            }

            // return if logging disabled, or if level isn't being logged
            if (listener != default(PodeListener) && (!listener.ErrorLoggingEnabled || !listener.ErrorLoggingLevels.Contains(level.ToString(), StringComparer.InvariantCultureIgnoreCase)))
            {
                return;
            }

            if (context == default(PodeContext))
            {
                Console.WriteLine($"[{level}]: {message}");
            }
            else
            {
                Console.WriteLine($"[{level}]: [ContextId: {context.ID}] {message}");
            }
        }
コード例 #3
0
        public static void WriteException(Exception ex, PodeListener listener = default(PodeListener), PodeLoggingLevel level = PodeLoggingLevel.Error)
        {
            if (ex == default(Exception))
            {
                return;
            }

            // return if logging disabled, or if level isn't being logged
            if (listener != default(PodeListener) && (!listener.ErrorLoggingEnabled || !listener.ErrorLoggingLevels.Contains(level.ToString(), StringComparer.InvariantCultureIgnoreCase)))
            {
                return;
            }

            // write the exception to terminal
            Console.WriteLine($"[{level}] {ex.GetType().Name}: {ex.Message}");
            Console.WriteLine(ex.StackTrace);
        }