![]() |
1
6
您提到了由于潜在的级联无效而放弃条件编译的想法-如果您愿意接触需要日志记录/跟踪而不需要重新编译来启用的pl/sql源,则有一种类似的方法。 您仍然可以添加自己选择的一对名称/值来添加plsql_ccflags,并让您的应用程序代码对v$parameter进行相对轻量的查询,以确定日志记录是否“打开”。Crudest实现是一个名称/值对,但是您可以将其扩展为具有不同的模块特定的对,这样可以以更细的粒度打开日志记录。 [编辑] 下面是一个非常简单的示例,用于响应您的评论/请求-您显然希望在分析plsql_ccflags字符串时更加复杂,以防它具有其他现有信息,或者包装成函数等:
现在,作为有权发布alter system的用户: alter system set plsql_ccflags='custom_logging:true'; 并切换回: alter system set plsql_ccflags=''; |
![]() |
2
5
回顾同一个问题,发现以下项目似乎仍在进行中, https://github.com/tmuth/Logger---A-PL-SQL-Logging-Utility |
![]() |
3
3
在我们的应用程序中,我们大量使用了ask-tom的debug.f工具。我很快注意到的一件事是,对“debugtab”的查询太多,以至于无法查看每条日志消息是否都有日志记录。我对它进行了修改,每100条日志消息只检查一次表,现在它工作得很好。 我的观点是尽量避免检查每个日志消息的表,看看是否应该输出它。通常,您希望在长时间运行的过程中打开日志记录,因此您可以这样做很重要。在我的例子中,我决定等上几秒钟,直到100个日志记录调用在它真正注意到日志记录打开之前就结束了。 |
![]() |
4
1
设置上下文并向其添加名称-值对不是更容易吗?可以使用debugtab表上的触发器更改上下文中的值。 |