基本的にコンソールアプリケーションであるマルチスレッドアプリケーション(サーバー)に取り組んでいます。デフォルトでは白色であるコンソールに処理ログを表示します。ただし、トランザクションが成功した場合はテキストを緑色で表示し、トランザクションが失敗した場合はテキストを赤色で表示します。そのため、このために Program.cs に 3 つの個別の関数があります。
簡易ログの場合
public static void Write(string text)
{
try
{
Console.Out.Write(text);
}
catch (Exception)
{ }
}
トランザクションが失敗した場合、色を赤に変更し、印刷してから白に戻します
public static void WriteError(string text)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("\t" + text);
Console.ForegroundColor = ConsoleColor.White;
}
トランザクションを成功させるために、色を緑に変更し、印刷してから白に戻します
public static void WriteSuccess(string text)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("\t" + text);
Console.ForegroundColor = ConsoleColor.White;
}
問題は、200 を超えるクライアントが接続し、各クライアントのトランザクションのログがコンソールに出力される場合です。また、単一行の緑のような色を変更すると、通常のログの他の多くの行も緑になります。では、この問題を解決するにはどうすればよいか教えてください。