Enable ODP.Net logging

╄→гoц情女王★ 提交于 2019-12-21 01:21:06

问题


Can anyone help me with enabling ODP.Net logging on a Windows XP machine? I googled and found following link but it did not work for me.

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

I set the "TraceLevel" setting to "63" in registry but it did not help

Basically I want to capture all the database call happening from my C# code through the log.

I wish there was a tool like "SQL Profiler" for Oracle.


回答1:


I had the same issues on certain machines when troubleshooting some issues with Oracle Support. I found that changing the path to the output file a couple of times and multiple restarts finally forced the ODP client to start logging. Make sure that the output file is to a directory that your calling application identity has access to.

Check the following things in the registry keys. Here is an example from my machine for .net4 and 11.2.

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

  • 32 or 64 bit (correct node)
  • Change the Trace Level to 8 (or 64 I think for complete logging)
  • Change the Trace Option = 1
  • Set a valid TraceFileName



回答2:


Note that the trace will default to go in the root of the C drive. For Windows 7 and later, this requires administrator privilege or it will just fail silently. So either make sure your app is running as administrator or that you change the path of the file.

Also note, that if you want to trace ODP.NET fully managed, you need to put the settings inside the app or web config file, not the registry, AND the settings for TraceLevel are different (1 through 7).

And finally, when tracing unmanaged ODP.NET remember that there is a separate WOW registry node for 32 bit Windows. If your app is 32 bit, don't accidentally set it under the 64 bit portion of the registry.




回答3:


You can also use AOP-based approach - generate proxy using library like Castle Dynamic Proxy, intercept the calls you're interested in and log the arguments like SQL and parameters. This is more powerful method in my opinion although it can somehow affect performance. See this Gist for sample implementation: https://gist.github.com/Buthrakaur/b1124c08f8521f39f8fd



来源:https://stackoverflow.com/questions/5915343/enable-odp-net-logging

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!