启用ODP.Net日志记录

任何人都可以帮我在Windows XP机器上启用ODP.Net日志记录吗? 我用Google搜索并发现以下链接,但它对我不起作用。

http://download.oracle.com/docs/html/E10927_01/featConfig.htm

我在注册表中将“TraceLevel”设置为“63”但它没有帮助

基本上我想通过日志捕获从我的C#代码发生的所有数据库调用。

我希望Oracle有一个像“SQL Profiler”这样的工具。

在解决Oracle Support的某些问题时,我在某些计算机上遇到了同样的问题。 我发现多次更改输出文件的路径并多次重启最终迫使ODP客户端开始记录。 确保输出文件位于您的调用应用程序标识可以访问的目录中。

检查注册表项中的以下内容。 这是我的机器.net4和11.2的一个例子。

HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ ORACLE \ ODP.NET \ 4.112.2.0

  • 32或64位(正确的节点)
  • 将跟踪级别更改为8(或64我认为完整日志记录)
  • 更改跟踪选项= 1
  • 设置有效的TraceFileName

请注意,跟踪将默认位于C驱动器的根目录中。 对于Windows 7及更高版本,这需要管理员权限,否则它将以静默方式失败。 因此,要么确保您的应用程序以管理员身份运行,要么确保更改文件的路径。

另请注意,如果要跟踪完全托管的ODP.NET,则需要将设置放在应用程序或Web配置文件中,而不是注册表中,并且TraceLevel的设置不同(1到7)。

最后,当跟踪非托管ODP.NET时,请记住32位Windows有一个单独的WOW注册表节点。 如果您的应用程序是32位,请不要在注册表的64位部分下意外设置它。

您还可以使用基于AOP的方法 – 使用Castle Dynamic Proxy等库生成代理,拦截您感兴趣的调用并记录SQL和参数等参数。 在我看来,这是更强大的方法,虽然它可以某种方式影响性能。 有关示例实现,请参阅此要点: https : //gist.github.com/Buthrakaur/b1124c08f8521f39f8fd