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

本文关键字:选项 输出 控制台 多线程 应用程序 启用 | 更新日期: 2023-09-27 18:03:11

你好,我正在开发一个多线程的服务器应用程序,该应用程序具有控制面板表单和用于输出的控制台。我正在使用控制台输出日志。对于启用日志,我编译带日志的版本,对于禁用日志,我编译不带日志的版本。当我使用所有代码时,这是处理在行之间的。

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

所以我使用#define Enable_DEBUG_ECHO在它为echo编译的文件的顶部。但我想实现一个选项,用户可以启用/禁用日志通过点击或类似的东西。谁来告诉我该怎么做

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

你知道,当你使用预编译选项(比如你的代码)时,程序只包含代码的一个'版本'(我的意思是,如果你定义Enable_DEBUG_ECHO,行'Console。WriteLine("某事正在发生");'将包含在result dll中,但如果您没有定义Enable_DEBUG_ECHO,则不会包含它。

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

所以你需要在配置文件中保存你的' on/off'变量。和比

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

您可以使用日志框架,如NLog或log4net,这使得所有这些都很容易。您可以通过编程方式或通过配置文件配置它们。