我正在启动一个新的Web API项目,并安装了Elmah。报告异常似乎在HTTP请求的上下文中是直截了当的。但是在应用程序启动期间发生的特殊事情呢? Elmah有一种手动记录异常的机制,但这是一种明智的方法吗?我有一种不安的感觉,我正在做一些不推荐的事情。
答案 0 :(得分:2)
ELMAH是在Web API中记录未捕获的异常以及手动记录错误的绝佳选择。如果您还没有,那么您应该查看Elmah.Contrib.WebApi,它会自动记录Web API错误,但也包含用于Web API的ExceptionLogger,它也会在初始化期间记录错误。
话虽如此,ELMAH可能不是每个日志记录方案的正确工具。如果要记录信息,调试和详细消息,可以将ELMAH的使用与您选择的日志框架结合使用。我个人喜欢Serilog,但还有其他选择,如log4net和NLog。所有这些都很容易在Web API中安装。
实际上,几个月前我写了一篇博客文章,在那里我试着总结一下你可以阅读的ASP.NET Error Logging Best Practices。有关ELMAH和日志记录框架之间差异的更多信息,我还写了ELMAH vs log4net,其中还介绍了除log4net之外的其他日志框架。