log4net会挂起应用程序吗?

时间:2010-12-16 05:45:30

标签: log4net

我正在使用ColoredConsoleAppender,我担心它是否会挂起我的应用程序。 任何人都有经验

2 个答案:

答案 0 :(得分:3)

来自log4net网站: http://logging.apache.org/log4net/release/faq.html

没有。 log4net不可靠。它是一种尽力而为的故障停止日志系统。

通过失败停止,我们的意思是log4net不会在运行时抛出意外异常,从而可能导致应用程序崩溃。如果由于任何原因,log4net抛出一个未捕获的异常(可能抛出的ArgumentException和ArgumentNullException除外),请发送电子邮件至log4net-user@logging.apache.org邮件列表。未捕获的异常被视为需要立即关注的严重错误。

我个人经常使用它,从未遇到过问题。

答案 1 :(得分:2)

@ ralf.w。已经显示出完整的症状。我可以改写,因为我最近也遇到了同样的问题。

  1. 开发一个使用ColoredConsoleAppender(或ConsoleAppender)打印日志的控制台应用程序。
  2. 开发另一个应用程序(在我的情况下为WinForms)来执行该控制台(使用Process.Start)。 UseShellExecute = false以重定向标准输出和错误。 CreateNoWindow = true。 WindowStyle = Hidden。
  3. 然后在几台计算机(或远程桌面会话)上,log4net将挂起控制台应用程序,在挂起转储中,您可以看到奇怪的是等待写入流完成。

    很难在普通机器(如我的机器)上重现,所以虽然log4net是开源的,但很难进一步调查。

    解决方法可以简单到将控制台应用程序显示为最小化(而不是隐藏),和/或更改其他ProcessStartInfo设置。