Beispiel #1
0
        private void WriteObjCore(
            Action <ConsoleColorsAgg> mainAction,
            ConsoleColorsAgg colors,
            string startText,
            string endText,
            ConsoleTextDelims mainDelims,
            ConsoleTextDelims outerDelims,
            bool printTimeStamp = false)
        {
            ConsoleColor textColor       = colors.SecondaryForeColor;
            ConsoleColor delimsBackColor = colors.HighlightBackColor;

            PrintTimeStampIfReq(printTimeStamp);

            WriteWithDelims(
                outerDelims.StartDelim,
                null,
                startText,
                textColor,
                delimsBackColor,
                2);

            WriteWithDelims(
                mainDelims.StartDelim,
                null,
                null,
                textColor,
                delimsBackColor,
                1,
                1);

            mainAction(colors);

            WriteWithDelims(
                mainDelims.EndDelim,
                null,
                null,
                textColor,
                delimsBackColor,
                1,
                1);

            WriteWithDelims(
                null,
                outerDelims.EndDelim,
                endText,
                textColor,
                delimsBackColor,
                0,
                2);
        }
Beispiel #2
0
        private void WriteExceptionCore(
            Exception exc,
            ConsoleColorsAgg colors,
            int level           = 0,
            bool printTimeStamp = false)
        {
            var mainColor      = colors.MainForeColor;
            var highlightColor = colors.HighlightBackColor;

            PrintTimeStampIfReq(printTimeStamp);

            if (level > 0)
            {
                WriteWithDelims(
                    "LEVEL",
                    null,
                    level.ToString(),
                    mainColor,
                    highlightColor,
                    0,
                    1);
            }

            WriteWithDelims(
                "MESSAGE",
                null,
                exc.Message,
                mainColor,
                highlightColor,
                0,
                1);

            WriteWithDelims(
                "TYPE",
                null,
                exc.Message,
                mainColor,
                highlightColor,
                0,
                1);

            WriteWithDelims(
                "STACKTRACE",
                null,
                exc.StackTrace,
                mainColor,
                highlightColor,
                0,
                1);

            if (exc.InnerException != null)
            {
                WriteWithDelims(
                    "INNER EXCEPTION",
                    null,
                    level.ToString(),
                    mainColor,
                    highlightColor,
                    0,
                    1);

                WriteExceptionCore(
                    exc.InnerException,
                    colors,
                    level + 1);
            }

            if (exc is AggregateException aggExc)
            {
                WriteWithDelims(
                    "INNER EXCEPTIONS (AGGREGATE)",
                    null,
                    level.ToString(),
                    mainColor,
                    highlightColor,
                    0,
                    1);

                foreach (var innerExc in aggExc.InnerExceptions)
                {
                    WriteWithDelims(
                        "INNER EXCEPTION",
                        null,
                        level.ToString(),
                        mainColor,
                        highlightColor,
                        0,
                        1);

                    WriteExceptionCore(
                        innerExc,
                        colors,
                        level + 1);
                }
            }
        }