0

我已将企业库配置为将数据记录到数据库中,一切正常。这是当前日志记录信息的样子:

时间戳:2013 年 6 月 19 日上午 7:10:01

类别:eConnect 例外

优先级:0

事件编号:100

严重性:错误

标题:企业库异常处理

机器:ISDC30517

应用域:/LM/W3SVC/23/ROOT-4-130160992152908413

进程号:8808

进程名称:C:\Program Files (x86)\IIS Express\iisexpress.exe

线程名称:

Win32 线程 ID:8952

扩展属性:

这是记录我的异常的代码:

public void LogException(Exception exception)
{
   ExceptionPolicy.HandleException(exception, "GeneralExceptionPolicy");
}

我运行的默认脚本为企业库生成数据库表以记录数据,为我提到的每个属性生成一个新列。

现在我还希望能够添加其他信息。目前我正在考虑添加出现此异常的当前用户的用户名。

我进行了很多搜索,但似乎找不到可以帮助我解决此问题的内容。如何在记录的消息中添加其他信息?

4

1 回答 1

2

您可以将附加信息添加到 Exception.Data 属性。这些值将被添加到 LogEntry 的 ExtendedProperties。然后,您可以配置格式化程序以在 formattedMessage 字符串中输出特定的扩展属性键。请参阅:EntLib 日志中缺少 Exception.Data 信息

这可能是最简单的方法,但是信息被隐藏在数据库表中的字符串中。

另一种方法是将数据直接添加到数据库中。这将涉及对开箱即用的数据库架构和存储过程的更改以及自定义跟踪侦听器的创建。您可以在Enterprise Library Sample Projects页面找到两种不同的设计:

  • 带有自定义异常处理程序的扩展属性跟踪侦听器包含一个自定义跟踪侦听器,它将扩展属性记录到一个单独的扩展属性表中,该表允许写入所有扩展属性。

  • 自定义数据库跟踪侦听器示例使用 CustomLogEntry 将一些 CustomData 写入 Log 表上的自定义数据库列。

于 2013-07-08T16:19:18.180 回答