繁体   English   中英

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

[英]enable disable option of console output in multithreaded applications

您好,我正在使用多线程服务器应用程序,该应用程序具有控制面板形式和用于输出的控制台。 我正在使用控制台输出日志。 对于启用日志,我使用日志编译版本,对于禁用日志,我在不使用日志编译版本。 这是我在行之间使用所有代码所处理的。

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

因此,如果在文件顶部使用#define Enable_DEBUG_ECHO ,则会进行编译以产生回声。 但是我想实现一个选项,用户可以通过该选项单击或类似方式启用/禁用日志。 有人给我一个主意,我该怎么做。

您知道,当您使用预编译选项(例如您的代码)时,该程序仅包含代码的一个“版本”(我的意思是,如果您定义Enable_DEBUG_ECHO,则行“ Console.WriteLine(“正在发生什么”)); '将包含在结果dll中,但如果您未定义Enable_DEBUG_ECHO,则不会包含在其中。

因此,如果您要启用/禁用运行时日志,则应创建不带预编译选项的日志。

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

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

您可以使用诸如NLoglog4net之类的日志记录框架,这使所有这些变得如此容易。 您可以以编程方式或通过配置文件来配置它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM