我在 oracle DB 中有日志表和支持存储过程,它接受以下输入并将它们提供给具有相同列的表。
PROCEDURE SP_LOG_INSERT
( ProgramDate Varchar2 ,
ProgramName date ,
ProgramStatus varchar2,
ProgramMessage varachar2(4000 Byte))
我如何使用企业 libaray 5.0 使用这些自定义参数填充表格。我看过很多在线页面,但大多数都建议创建一个新表和新存储过程我什至引用了 Alex Oliveri 的博客 here这真的很有帮助。但是我想使用现有的表和存储过程。是否可以这样做,或者我应该创建一个新表和存储过程。下面是我的 TextFormatter
<formatters>
<add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
template="Timestamp: {timestamp}{newline}
Message: {message}{newline}
Category: {category}{newline}
Priority: {priority}{newline}
EventId: {eventid}{newline}
Severity: {severity}{newline}
Title:{title}{newline}
Machine: {localMachine}{newline}
App Domain: {localAppDomain}{newline}
ProcessId: {localProcessId}{newline}
Process Name: {localProcessName}{newline}
Thread Name: {threadName}{newline}
Win32 ThreadId:{win32ThreadId}{newline}
Extended Properties: {dictionary({key} - {value}{newline})}"
name="Text Formatter" />
</formatters>
最佳答案
您将需要创建一个知道如何记录到您的表/存储过程的自定义跟踪监听器,或者将日志记录表/存储过程修改为 Enterprise Library 期望的格式。
这是一个sample database trace listener对于 SQL 服务器。如果您决定创建自定义跟踪监听器,这对您来说可能是一个很好的起点。
此外,由于您使用的是 Oracle,因此您需要更改数据库脚本(因为它是特定于 SQL Server 的)。 Ultimate guide for Enterprise Library 5.0 Application Logging Block using Oracle 11g是一篇关于使用 Oracle 设置数据库日志记录的好博文。
关于c# - 具有自定义参数输入的企业库日志记录数据库跟踪监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26999420/