Ejemplo n.º 1
0
        public static void Log(ChessBoard cb, Exception e, bool systemExit)
        {
            try
            {
                // print to Console
                Console.WriteLine(e);

                // redirect Console
                var writer = new StringWriter();
                Console.SetOut(writer);

                // print info
                Console.WriteLine();
                Console.WriteLine();
                Console.WriteLine("Chess22kDotNet " + UciOut.GetVersion());
                Console.WriteLine();
                Console.WriteLine("start fen");
                Console.WriteLine(StartFen);
                Console.WriteLine();
                Console.WriteLine("crashed fen");
                Console.WriteLine(cb);
                Console.WriteLine();

                // print statistics
                Statistics.Print();

                Console.Out.Flush();

                // print exception
                Serilog.Log.Information(writer.ToString());
                Serilog.Log.Error(e, "An exception occurred");
            }
            catch (IOException ex)
            {
                Console.WriteLine(ex);
            }
            finally
            {
                if (systemExit)
                {
                    Environment.Exit(1);
                }
            }
        }