Exemplo n.º 1
0
        void Runner.ExecuteInfo.ISubtaskExecutor.ExecuteSubtask(int execID, int minSubtaskIndex, int maxSubtaskIndex)
        {
            try
            {
                for (int i = minSubtaskIndex; i <= maxSubtaskIndex; i++)
                {
                    tasks[i].QuerySubtasks();
                }
            } catch (Exception e) { logger?.Log(e); }

            if (Interlocked.Decrement(ref remainingQueries) == 0)
            {
                Complete();
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Creates new instance of game server
        /// </summary>
        /// <param name="boundAddress">Server bound address</param>
        /// <param name="port">Server bound port</param>
        public GameServer(string boundAddress, int port)
        {
            Logger            = new Utils.Logger(Path.Combine(Environment.CurrentDirectory, "logs"), "serverLog");
            server            = new WebSocketServer(IPAddress.Parse(boundAddress), port);
            server.Log.Output = new Action <LogData, string>((LogData logData, string input) => {
                switch (logData.Level)
                {
                case LogLevel.Info:
                    foreach (var ln in logData.Message.Split(new string[] { "\r", "\r\n", "\n" }, StringSplitOptions.None))
                    {
                        Logger.Log(Utils.LogEntryType.Info, ln);
                    }
                    break;

                case LogLevel.Error:
                    foreach (var ln in logData.Message.Split(new string[] { "\r", "\r\n", "\n" }, StringSplitOptions.None))
                    {
                        Logger.Log(Utils.LogEntryType.Error, ln);
                    }
                    break;

                case LogLevel.Warn:
                    foreach (var ln in logData.Message.Split(new string[] { "\r", "\r\n", "\n" }, StringSplitOptions.None))
                    {
                        Logger.Log(Utils.LogEntryType.Warning, ln);
                    }
                    break;

                case LogLevel.Fatal:
                    foreach (var ln in logData.Message.Split(new string[] { "\r", "\r\n", "\n" }, StringSplitOptions.None))
                    {
                        Logger.Log(Utils.LogEntryType.Critical, ln);
                    }
                    break;

                case LogLevel.Debug:
                    foreach (var ln in logData.Message.Split(new string[] { "\r", "\r\n", "\n" }, StringSplitOptions.None))
                    {
                        Logger.Log(Utils.LogEntryType.Debug, ln);
                    }
                    break;

                case LogLevel.Trace:
                    foreach (var ln in logData.Message.Split(new string[] { "\r", "\r\n", "\n" }, StringSplitOptions.None))
                    {
                        Logger.Log(Utils.LogEntryType.Stacktrace, ln);
                    }
                    break;
                }
            });
            server.AddWebSocketService <GameServerBehaviour>("/");
        }
Exemplo n.º 3
0
        public void BasicTest()
        {
            var path = @"C:\CodeGarten\loggerTest.txt";
            var writer = File.CreateText(path);
            var logger = new Utils.Logger(writer);
            var list = new LinkedList<Thread>();
            var numbers = new bool[1000];
            logger.Start();
            Thread thread;
            for (var i = 0; i < numbers.Length; i++)
            {
                var iContext = i;
                thread = new Thread(() => logger.Log(iContext.ToString()));
                thread.Start();
                list.AddLast(thread);
            }

            foreach (var threadList in list)
                threadList.Join();

            writer.Close();
            var reader = File.ReadAllLines(path);

            foreach (var s in reader)
            {
                int i;
                var split = s.Split(new[] {':', ' '}, StringSplitOptions.RemoveEmptyEntries);
                Int32.TryParse(split[4], out i);
                numbers[i] = true;
            }

            foreach (var number in numbers)
                if(!number)
                    throw new Exception();

            logger.Stop();
        }