0

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

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

所以我如果#define Enable_DEBUG_ECHO在文件顶部使用它会为 echo 编译。但我想实现一个选项,用户可以通过单击或类似的方式启用/禁用日志。有人给我一个想法,我该怎么做。

4

2 回答 2

2

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

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

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

if (VARIABLE_FROM_CONFIG)
{
Console.WriteLine("Something is happening");
}
于 2013-03-11T07:14:19.437 回答
1

您可以使用诸如NLoglog4net之类的日志框架,这使这一切变得如此简单。您可以通过编程方式或通过配置文件配置它们。

于 2013-03-11T07:10:08.237 回答