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(); } }
/// <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>("/"); }
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(); }