我正在开发一个多线程应用程序(服务器),它基本上是一个控制台应用程序。在其中,我显示处理日志到控制台,默认情况下为白色。
但是,在成功的交易中,我会将文本显示为绿色,而在失败的交易中,则会将文本显示为红色。因此,我在Program.cs中有三个单独的函数来实现这一点。
对于简单的日志:
对于简单的日志:
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个客户端连接时,每个客户端的交易日志都会打印在控制台上。而且当我将单行颜色更改为绿色时,许多其他正常日志行也会变成绿色。
请告诉我如何解决这个问题。