Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Log4Net/C#-禁用默认日志记录_C#_Log4net - Fatal编程技术网

Log4Net/C#-禁用默认日志记录

Log4Net/C#-禁用默认日志记录,c#,log4net,C#,Log4net,我在一个C#项目中使用log4net,在生产环境中,我想禁用所有日志记录,但是当一些 发生错误,它应该将以前的所有512条消息记录到一个文件中。我已成功配置了此文件,并且工作正常。当发生致命错误时,它会将消息记录到文件中 但是,当我从VisualStudio运行它时,我可以看到所有日志消息都写入了输出窗口,不管它是否是致命的。(从Windows资源管理器运行时,我看不到这些消息-我的应用程序是WinForm exe,没有控制台窗口可以查看输出) 有没有办法禁用此日志记录?我只需要在文件中记录日志

我在一个C#项目中使用log4net,在生产环境中,我想禁用所有日志记录,但是当一些 发生错误,它应该将以前的所有512条消息记录到一个文件中。我已成功配置了此文件,并且工作正常。当发生致命错误时,它会将消息记录到文件中

但是,当我从VisualStudio运行它时,我可以看到所有日志消息都写入了输出窗口,不管它是否是致命的。(从Windows资源管理器运行时,我看不到这些消息-我的应用程序是WinForm exe,没有控制台窗口可以查看输出)

有没有办法禁用此日志记录?我只需要在文件中记录日志,在发生致命错误时也需要


这就是我在Windows窗体的静态初始值设定项中配置它的方式

static Window1()
    {
      Stream vStream = typeof(Window1).Assembly.GetManifestResourceStream("TestLogNet.log4net.config");
      XmlConfigurator.Configure(vStream);
      BasicConfigurator.Configure();
    }
我在WinForm的构造函数中初始化了logger对象

logger = LogManager.GetLogger(typeof(Window1));
[语言-C#, .NET Framework-3.5, Visual Studio 2008, log4net 1.2.10,
项目类型-WinForms]

如果应用程序是在发布模式下编译的,您是否仍能在Visual Studio中看到这些消息?log4net可能使用Debug.Write来显示错误。如果是这种情况,则这些消息不应在释放模式下出现。

删除该行。这就是该行所做的--添加一个指向Console.Out的ConsoleAppender。

将所有内容输出到控制台是否重要?当然,因为winforms应用程序没有控制台,所以它只是按照您希望的方式记录?这关系到性能,因为所有控制台调用都是同步的。如果你有一堆后台线程在做日志记录,那么他们将受到严重影响。+1获取有关问题的完整详细信息(有太多问题可以恢复为“帮助,它不工作”)