log4net是否会挂起应用程序?
从log4net的网站: http://logging.apache.org/log4net/release/faq.html
号log4net的是不可靠的。这是一个尽力而为和失败停止记录系统。
通过fail-stop,我们的意思是log4net不会在运行时抛出意外的异常,从而可能导致应用程序崩溃。如果出于任何原因,log4net会抛出一个未捕获的异常(除了可能抛出的ArgumentException和ArgumentNullException外),请发送电子邮件至[email protected]邮件列表。未捕获的异常被视为需要立即关注的严重错误。
我个人一直都在使用它,并且从未遇到过问题。
我很担心至少ColoredConsoleAppender会挂起应用程序。我实际上遇到了一个 – user496949 2010-12-16 06:10:12
@ user496949:我遇到了同样的问题。我正在使用一个不可思议的过程并使用ColoredConsoleAppender进行追加。 – 2011-03-09 10:01:51
我实际上解决了这个问题:调用进程没有从输出流中读取,最终流是“完整的”。 – 2011-03-09 15:12:34
@ ralf.w。已经显示了完整的症状。我也可以改写,因为我最近也遇到同样的问题。
- 开发使用ColoredConsoleAppender(或ConsoleAppender)打印出日志的控制台应用程序。
- 开发另一个应用程序(在我的情况下WinForms)来执行该控制台(使用Process.Start)。 UseShellExecute = false以重定向标准输出和错误。 CreateNoWindow = true。 WindowStyle =隐藏。
然后在少数机器(或远程桌面会话)上,log4net将挂起控制台应用程序,在挂起转储中,您可以看到它奇怪地等待写入流完成。
难以在普通机器上重现(如我的),尽管log4net是开源的,但很难进一步调查。
解决方法可以如控制台应用程序最小化(而不是隐藏)和/或更改其他ProcessStartInfo设置一样简单。
不只是ColoredConsoleAppender。即使ConsoleAppender也以相同的方式挂起。 – 2011-03-14 11:53:05