使用Enterprise Library 5进行数据库日志记录

4
有人知道如何使用EL 5.0实现数据库异常日志记录吗?
谢谢!
3个回答

4
您需要运行一个脚本来创建特定的表结构,同时还需创建一个存储过程并在追踪侦听器配置部分中引用。您应该能够在此处找到此脚本文件:C:\EntLib41Src\Blocks\Logging\Src\DatabaseTraceListener\Scripts 文件夹。我知道这是针对库的4版本,但是查看了版本5后,发现文件夹结构已经发生了变化,而脚本文件夹则不见踪影。但是,此网站应该可以为您提供一些指导。
您也可以尝试MSDN文档
所以我对EntLib50Src\Blocks\Logging\Src\DatabaseTraceListener\Scripts文件夹的神秘消失进行了更多调查。结果发现,如果您像我一样使用MSI将Entlib5安装到计算机上,则实际上有一个源代码MSI可供运行,位于C:\Program Files (x86)\Microsoft Enterprise Library 5.0\src(如果您使用的是64位电脑)或 C:\Program Files\Microsoft Enterprise Library 5.0\src(如果您没有),运行此MSI将安装Entlib5的源代码,也包括丢失的Scripts文件夹。

0

1
嗨Odnxe,我读了这些实践实验,但是在这些实验中没有提到如何使用数据库处理异常。我尝试配置配置文件,但我不知道是否需要创建存储过程或表格,或者需要创建什么才能使其正常工作? - fcartu

0

步骤一:配置日志块以记录到数据库。有一个实验室可以做这个。 步骤二:配置异常块以记录异常。有一个实验室可以做这个。 步骤三:将异常块指向写入数据库的日志类别。

就是这样。将异常记录到数据库没有什么特别之处。异常块将写入日志块。日志块会像处理任何其他日志操作一样处理这些内容。按照设置数据库日志的说明,你基本上就完成了。


嗨,Chris,我按照你说的配置了所有步骤,应用程序也能正常运行,但是当我检查数据库表时,没有任何记录。我正在使用Oracle数据库,并将SQL脚本从SQL Server更改为Oracle,我不知道这是否会影响什么。 - fcartu
Entlib团队从未支持使用数据库跟踪侦听器针对除Sql Server之外的任何内容。我的建议是尝试直接调用您已配置的日志记录存储过程,然后查看是否在表中显示内容。当您在没有图片中的块的情况下使该部分正常工作时,请逐步升级到日志记录块(此时应该可以正常工作)。 - Chris Tavares
Chris,我尝试调用存储过程,它运行良好。问题在于当我调用ExceptionPolicy.HandleException(e, "UIPolicy")时,应用程序不会抛出任何错误或异常,它正常执行,但在数据库中没有保存任何内容。 - fcartu
1
你尝试过使用日志记录块(不带异常块)吗?我强烈怀疑你的问题在于日志设置,而不是异常块。 - Chris Tavares

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接