任何人都可以帮助我在Windows XP计算机上启用ODP.Net日志记录吗?我用谷歌搜索并发现以下链接,但它对我不起作用。
http://download.oracle.com/docs/html/E10927_01/featConfig.htm
我在注册表中将“TraceLevel”设置为“63”,但它没有帮助
基本上我想通过日志捕获从我的C#代码发生的所有数据库调用。
我希望Oracle有一个像“SQL Profiler”这样的工具。
答案 0 :(得分:3)
在解决Oracle支持的一些问题时,我在某些计算机上遇到了同样的问题。我发现多次更改输出文件的路径并多次重启最终迫使ODP客户端开始记录。确保输出文件位于您的调用应用程序标识可以访问的目录中。
检查注册表项中的以下内容。这是我的机器上.net4和11.2的一个例子。
HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ ORACLE \ ODP.NET \ 4.112.2.0
答案 1 :(得分:3)
请注意,跟踪将默认位于C驱动器的根目录中。对于Windows 7及更高版本,这需要管理员权限,否则它将以静默方式失败。因此要么确保您的应用程序以管理员身份运行,要么确保更改文件的路径。
另请注意,如果要跟踪完全托管的ODP.NET,则需要将设置放在应用程序或Web配置文件中,而不是注册表中,并且TraceLevel的设置不同(1到7)。 / p>
最后,在跟踪非托管ODP.NET时,请记住32位Windows有一个单独的WOW注册表节点。如果您的应用是32位,请不要在注册表的64位部分下意外设置。
答案 2 :(得分:-2)
您还可以使用基于AOP的方法 - 使用Castle Dynamic Proxy等库生成代理,拦截您感兴趣的调用并记录SQL和参数等参数。在我看来,这是更强大的方法,虽然它可以某种方式影响性能。有关示例实现,请参阅此要点:https://gist.github.com/Buthrakaur/b1124c08f8521f39f8fd