【发布时间】:2013-04-24 09:48:52
【问题描述】:
我有一个控制台应用程序,它目前使用 log4net 设置将信息记录到控制台输出。
我有各种 log.Debug("Debug info") 语句,如果我的应用程序中设置了调试标志,我只想将它们打印到控制台。
调试变量是通过读取调用时传递给应用程序的开关来设置的。使用NDesk.Options 读取参数。
我想避免将每个调试语句都包装在 if:-
bool debug = false;
// read switches
var p = new OptionSet() {
{ "d|debug", "debug mode", v => debug = v != null },
};
if (debug) {
log.Debug("Debug info")
}
我可以在配置的<log4net><appender> 部分中添加什么来启用此功能,还是有办法覆盖 log.Debug 以提供逻辑?
【问题讨论】:
-
你可以使用日志级别,见other post
-
这是静态的吗?我想根据调用时传递给应用程序的开关以编程方式选择日志记录级别。
-
您的意思是您的应用程序中的调试标志以编程方式设置或取消设置?
-
是的。根据调用时是否将 --debug 传递给应用程序,布尔调试设置为 true 或 false。如果有任何区别,我正在使用 NDesk.Options 来解析参数。
标签: c# log4net ndesk.options