【问题标题】:Adding additional information for logging data with enterprise library添加用于使用企业库记录数据的附加信息
【发布时间】:2013-07-08 06:18:27
【问题描述】:

我已将企业库配置为将数据记录到数据库中,一切正常。当前的日志记录信息如下所示:

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

类别:eConnect 例外

优先级:0

事件 ID:100

严重性:错误

Title:企业库异常处理

机器:ISDC30517

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

进程 ID:8808

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

线程名称:

Win32 线程 ID:8952

扩展属性:

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

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

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

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

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

【问题讨论】:

    标签: c# enterprise-library


    【解决方案1】:

    您可以将附加信息添加到 Exception.Data 属性。这些值将被添加到 LogEntry 的 ExtendedProperties。然后,您可以配置格式化程序以在 formattedMessage 字符串中输出特定的扩展属性键。见:Exception.Data info is missing in EntLib log

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多