C# 是否有类似企业库模式的东西&;控制台应用程序的实践?

C# 是否有类似企业库模式的东西&;控制台应用程序的实践?,c#,exception-handling,console-application,enterprise-library,C#,Exception Handling,Console Application,Enterprise Library,控制台应用程序中是否有类似的功能?我特别想找一些用于记录/发送异常通知的东西,而不是在每个catch块上调用SendExceptionMail函数。我用于这类事情,我通常用多个附加器配置可执行文件,而不用Console.Write()。我通常(至少)有一个 coloredConsolePender或ConsolePender登录到控制台 RollingFileAppender创建日志文件 只需添加一个SmtpAppender即可通过电子邮件发送事件。根据需要向Windows事件日志或SQL数

控制台应用程序中是否有类似的功能?我特别想找一些用于记录/发送异常通知的东西,而不是在每个
catch
块上调用
SendExceptionMail
函数。

我用于这类事情,我通常用多个附加器配置可执行文件,而不用
Console.Write()
。我通常(至少)有一个

  • coloredConsolePender
    ConsolePender
    登录到控制台
  • RollingFileAppender
    创建日志文件
只需添加一个
SmtpAppender
即可通过电子邮件发送事件。根据需要向Windows事件日志或SQL数据库添加要记录的其他附加程序

有关一些配置示例,请参见

顺便提一下……为什么需要多个
catch
块?除非您实际处理异常,否则您不应该捕获任何东西,尽管存在一些异常:我建议在跨越进程或机器边界的点捕获、记录和继续异常


相反,让例外冒出来。在
Main()
中有一个记录异常的
catch
。更简单。

控制台应用程序的企业库有什么问题?我可能错了,但我的印象是它只适用于web应用程序?我不确定web应用程序,但它适用于控制台或Windows应用程序。我没有意识到,必须调查+1-除非发生意外错误,否则您不需要电子邮件(除非您希望每天都收到电子邮件)。不应该发生意外的错误。所以,您可能只需要在一个catch块内生成电子邮件。