使用Enterprise Library进行异常处理日志记录

时间:2014-03-27 16:44:36

标签: c# .net enterprise-library

我是微软企业库的新手。我目前正在探索使用Enterprise Library 5来记录系统抛出的异常到文本文件中。

问题1

我在LogEntry Microsoft.Practices.EnterpriseLibrary.Logging ErrorMessagesMessage附带ErrorMessages。{/ p>

我希望您能够解释哪些情况应该使用Messageex.Message?我目前找不到关于这两个变量的任何定义。

如果我发现了异常,我应该将ErrorMessages分配到Message还是Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging


问题2

我还发现有Microsoft.Practices.EnterpriseLibrary.Logging。我是否知道这是一种更正确的方法来记录异常而不是使用{{1}}?

3 个答案:

答案 0 :(得分:3)

如果您的目的是处理/记录异常,那么您应该使用异常处理块(其中Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging是其中的一部分)。 EH Block允许您配置如何处理不同类型的异常并创建异常类别。然后,当您需要处理异常时,您只需要调用:

ExceptionPolicy.HandleException( ex, <NameOfPolicy> );

库将负责其余部分,将输出路由到正确的侦听器。

此外,EH Block还具有内置的后备记录功能。假设您正在尝试登录数据库,但无法访问数据库。您可以使用回退配置EH块(开箱即用它使用Windows事件系统)以及无法创建日志的事实,并且原始异常将记录到回退中。

答案 1 :(得分:2)

可能为时已晚,但如遇以后情况会对某人有所帮助。

您不应直接使用Microsoft.Practices.EnterpriseLibrary.Logging来记录错误。它应该仅用于一般信息记录。

使用Microsoft.Practices.EnterpriseLibrary.ExceptionHandlingMicrosoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging进行错误处理和错误记录,并以此方式对其进行配置,以便它使用其中一个日志记录策略来记录错误。将在您的日志中写入的内容取决于您的格式化程序的配置方式以及记录位置取决于您的列表。

答案 2 :(得分:0)

对于第一个问题, 您大多使用MessageErrorMessages更多是额外信息。EntLib ErrorMessages

关于第二个问题:

Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging

它位于Microsoft.Practices.EnterpriseLibrary.Logging之上,它主要将字符串格式化为准备日志,因此使用它来记录异常是可选的,取决于您的日志记录策略。例如,我使用Microsoft.Practices.EnterpriseLibrary.Logging来记录所有内容,只是因为我更喜欢使用最少的外部引用,并且两者之间的差异不是那么大。 LoggingExceptionHandler