C# 在多线程应用程序中启用或禁用控制台输出选项

C# 在多线程应用程序中启用或禁用控制台输出选项,c#,console-application,server-application,C#,Console Application,Server Application,您好,我正在处理一个多线程的服务器应用程序,它有一个控制面板窗体和一个用于输出的控制台。我正在使用按控制台输出的日志。对于启用日志,我编译带有日志的版本;对于禁用日志,我编译不带日志的版本。这是在我使用所有代码时处理的 #if Enable_DEBUG_ECHO Console.WriteLine("Something is happening"); #endif 所以,如果在为ECHO编译的文件上使用#定义Enable_DEBUG_ECHO。但我想实现一个选项,用户可以通过单击或类似的方式启

您好,我正在处理一个多线程的服务器应用程序,它有一个控制面板窗体和一个用于输出的控制台。我正在使用按控制台输出的日志。对于启用日志,我编译带有日志的版本;对于禁用日志,我编译不带日志的版本。这是在我使用所有代码时处理的

#if Enable_DEBUG_ECHO
Console.WriteLine("Something is happening");
#endif

所以,如果在为ECHO编译的文件上使用
#定义Enable_DEBUG_ECHO
。但我想实现一个选项,用户可以通过单击或类似的方式启用/禁用日志。有人告诉我如何做到这一点。

您可以使用诸如或之类的日志框架,这使所有这些都变得非常简单。您可以通过编程或通过配置文件来配置它们。

您可以使用诸如或之类的日志框架,这使得所有这些都变得非常简单。您可以通过编程或通过配置文件来配置它们。

您知道,当您使用预编译选项(例如您的代码)时,程序只包含代码的一个“版本”(我的意思是,如果您定义Enable_DEBUG_ECHO,line“Console.WriteLine”(“发生了一些事情”)将包含在结果dll中,但如果未定义启用_调试_ECHO),则将不包含它

因此,如果你想在运行时启用/禁用你的日志,你应该创建没有预编译选项的日志

因此,您需要在配置文件中保存“打开/关闭”变量。及

if (VARIABLE_FROM_CONFIG)
{
Console.WriteLine("Something is happening");
}

你知道,当你使用预编译选项(比如你的代码)时,程序只包含一个“版本”的代码(我的意思是,如果你定义Enable_DEBUG_ECHO,line“Console.WriteLine(“正在发生的事情”);”将包含在结果dll中,但如果你不定义Enable_DEBUG_ECHO,它将不包括在内)

因此,如果你想在运行时启用/禁用你的日志,你应该创建没有预编译选项的日志

因此,您需要在配置文件中保存“打开/关闭”变量。及

if (VARIABLE_FROM_CONFIG)
{
Console.WriteLine("Something is happening");
}

bool logEnabled=true/false
然后
if(logEnabled).
查看库。
bool logEnabled=true/false
然后
if(logEnabled).
查看库。